вместо for(..;..;iterator++)
http://habrahabr.ru/company/pvs-studio/blog/113661/
P.S. Гмм, а интересный прием в комментах с if ( 3 == x) вместо if (x==3), случайно ошибку не сделаешь if (x=3).
Помнится, я его где-то видел (да-да, это старо и избито, но в с++ я нуб =).
Нашел описание, почему рекомендуют for(..;..;++iterator)
Re: Нашел описание, почему рекомендуют for(..;..;++iterator)
Выбор настораживает.Я выбрал «средний компилятор» и создал тестовый проект для Visual Studio 2008.
Ди, у нас в коде сервера это сплошь и рядом встречается. Не могу сказать что это красиво и правильно, но как прием имеет место быть, да.if ( 3 == x) вместо if (x==3)
Ммм... я то ли на наш общий фтп, то ли еще куда, но в наш общий доступ кидал книгу, откуда этот прием по-видимому и был взят.
upd:
Кстати есть еще распространенная бага - if( x |= 3 ) вместо if( x != 3 )
Re: Нашел описание, почему рекомендуют for(..;..;++iterator)
Нашел.
ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ… ВЫСТРЕЛИТЬ СЕБЕ В НОГУ Правила программирования на Си и Си++ Ален И. Голуб
ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ… ВЫСТРЕЛИТЬ СЕБЕ В НОГУ Правила программирования на Си и Си++ Ален И. Голуб
Я читал предложение поручать компилятору поиск небрежных присваиваний (когда вы на самом деле подразумевали сравнение) просто размещая константы в левой части. Например, следующий фрагмент даст ошибку при компиляции, если вы используете = вместо ==:
#define MAX 100
// ...
if ( MAX == x )
// ...
В этой идее есть достоинства, но я нахожу, что такой код труднее читается.