|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.06.2018, 17:59 | #1 |
Пользователь
Регистрация: 13.09.2010
Сообщений: 13
|
Зачем нужна такая конструкция?
Часто встречаю в исходниках такую конструкцию:
Код:
Последний раз редактировалось Alex11223; 21.06.2018 в 09:47. |
20.06.2018, 19:33 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Это альтернатива goto.
|
21.06.2018, 08:08 | #3 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Где ты их берёшь-то? Никакого смысла не вижу в do...while (false);
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
21.06.2018, 08:45 | #4 |
Пользователь
Регистрация: 13.09.2010
Сообщений: 13
|
|
21.06.2018, 08:51 | #5 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Скажу честно - никогда в глаза их не видал.
Что такое ATL - не знаю. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
21.06.2018, 09:23 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Одна из фишек do while(0) это то, что это выражение, которое требует ; в конце.
Вы не поверите, но есть (или по крайней мере были) компиляторы, которые выдают предупреждение на, по сути, пустое выражение ";". Или посмотрите на макрос типа assert и попробуйте вставить его в if. Можно конечно обойтись просто блоком { } но вложенные блоки это сравнительно недавняя возможность, плюс те же компиляторы, которые не потерпят ; в конце { }. А если кому-то не нравятся исходники Мелкомягких то можете покопаться в линуксе - там этого добра тоже навалом. |
21.06.2018, 09:44 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Это инструкция (statement), а не выражение (expression).
А зачем его там ставить? Как вариант — меньше вложенность. Это еще Guard называется. Например Код:
Код:
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.06.2018 в 09:47. |
21.06.2018, 12:49 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите, что означает такая конструкция int R { get; set; } | robix | C# (си шарп) | 10 | 18.06.2016 18:49 |
Почему такая конструкция не работает with Workbooks("name.xlsm").ActiveSheet. Selection ? | RISagitov | Microsoft Office Excel | 8 | 18.11.2015 12:53 |
Основные управляющие конструкции языка Delphi. Конструкция присваивания. Условная конструкция. Конструкция множественного выбора. | nadyaH | Помощь студентам | 3 | 23.11.2013 22:19 |
нужна вот такая программа | dikzz | Фриланс | 2 | 27.11.2012 01:48 |