Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Там важно не так отсутсвие break, как взаимопроникновение двух операторов. Не с точки зрения решаемой задачи, естественно, для неё отсутствие break важно, а с точки зрения нетривиальности использования языковых конструкций. (+)

Отправлено ReAl 19 июля 2009, г. 18:35
В ответ на: Что? Duff's device? Размотка цикла например? Очень нетривиальное использование switch без break? Тоже можно сказать "из простых кирпичиков сложено" отправлено пользователем VasilyS 19 июля 2009, г. 17:48

Что же касается
x || f()

то я не понимаю, как можно не понимать тонкости работы этой записи и при этом полностью понимать следующую запись
if( x || f() ) g();

Тогда и её следует считать трюком - ведь в С (но не С++) функция f() может вызываться не всегда. Безусловно трюк!

Это "x || f()" полностью понятно после понимания самодостаточности выражений, о чём я уже написал, и одного маленького параграфа
6.5.14 Logical OR operator
...
Semantics
The || operator shall yield 1 if either of its operands compare unequal to 0; otherwise, it yields 0. The result has type int.
Unlike the bitwise | operator, the || operator guarantees left-to-right evaluation; there is a sequence point after the evaluation of the first operand.
If the first operand compares unequal to 0, the second operand is not evaluated.

Важно последнее предложение. Вот и все трюки.

Впрочем, из данной дискуссии я по крайней мере вынес понимание, почему это называется трюками (вспоминается анекдот про пилящего сук, на котором сидит и прохожего со словами "ну ты шаман!" в конце).
Гораздо легче считать, что некая запись - это "приём, призванный запутать", чем признать то, что знание поведения оператора || у читателя как правильнописание у Винни-Пуха - "оно у меня хорошее, но оно хромает". "Трюк" не стыдно не понимать, не стыдно для его понимания не обойтись знанием С в объёме K&R. Это же "хитрый приём", а не "умный", недостаточно хитрыми себя охотно признают многие, недостаточно умным - мало кто.

Ещё вспомнилось - классе в 4-том кто-то "принёс" такой вот "трюк", "фокус" - "задумай число, умножь на столько-то, добавь столько-то, вычти задуманное, умножь на столько-то" и т.д., в конце "скажи, сколько вышло" и ответ "а задумал ты то-то". Народ даже кинулся выпытывать "секрет трюка", состоявший в той заученной последовательности в вычитании семи из "вышло" и делении на два.
Трюк?
Или незнание как "трюкачом", так и "обтрюканными" неких основ математики?



Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 47:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru