Попался (программирование)
В программировании подсказка — это действительная конструкция в системе, программе или языке программирования , которая работает так, как описано в документации, но противоречит интуиции и почти провоцирует ошибки, поскольку ее легко вызвать, а ее результат неожидан или необоснован. [1]
Пример
[ редактировать ]Классическая ошибка в C / C++ — это конструкция
if (a = b) code;
допустимо Синтаксически : оно помещает значение b
в a
а затем выполняет code
если a
не равно нулю. Иногда это даже намеренно. Однако чаще всего это опечатка: вероятно, программист имел в виду
if (a == b) code;
который выполняет code
если a
и b
равны. [1] Современные компиляторы обычно выдают предупреждение при встрече с предыдущей конструкцией (условный переход при присваивании, а не сравнении), в зависимости от опций компилятора (например, -Wall
вариант для gcc ). Чтобы избежать этой ошибки, есть рекомендация [2] чтобы сохранить константы в левой части сравнения, например 42 == x
скорее, чем x == 42
. Таким образом, используя =
вместо ==
вызовет ошибку компилятора (см. условия Йоды ). Однако многие виды ошибок не обнаруживаются компиляторами. [ нужна ссылка ]
См. также
[ редактировать ]Ссылки
[ редактировать ]Дальнейшее чтение
[ редактировать ]- Стивен К. Дьюхерст (2003). C++ Gotchas (Как избежать распространенных проблем при кодировании и проектировании) . Аддисон-Уэсли. ISBN 0321125185 .
Внешние ссылки
[ редактировать ]
- C «Ловушки и ловушки», Эндрю Кениг
- C++ Gotchas Руководство для программистов по предотвращению и исправлению девяноста девяти наиболее распространенных, разрушительных и интересных ошибок проектирования и программирования на C++, автор Стивен С. Дьюхерст.