Страница 1 из 1

Нашел описание, почему рекомендуют for(..;..;++iterator)

Добавлено: Ср апр 09, 2014 3:17 pm
Diatlo
вместо for(..;..;iterator++)

http://habrahabr.ru/company/pvs-studio/blog/113661/

P.S. Гмм, а интересный прием в комментах с if ( 3 == x) вместо if (x==3), случайно ошибку не сделаешь if (x=3).
Помнится, я его где-то видел (да-да, это старо и избито, но в с++ я нуб =).

Re: Нашел описание, почему рекомендуют for(..;..;++iterator)

Добавлено: Ср апр 09, 2014 7:46 pm
Vant
Я выбрал «средний компилятор» и создал тестовый проект для Visual Studio 2008.
Выбор настораживает.
if ( 3 == x) вместо if (x==3)
Ди, у нас в коде сервера это сплошь и рядом встречается. Не могу сказать что это красиво и правильно, но как прием имеет место быть, да.

Ммм... я то ли на наш общий фтп, то ли еще куда, но в наш общий доступ кидал книгу, откуда этот прием по-видимому и был взят.

upd:

Кстати есть еще распространенная бага - if( x |= 3 ) вместо if( x != 3 )

Re: Нашел описание, почему рекомендуют for(..;..;++iterator)

Добавлено: Чт апр 10, 2014 10:05 am
Vant
Нашел.

ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ… ВЫСТРЕЛИТЬ СЕБЕ В НОГУ Правила программирования на Си и Си++ Ален И. Голуб
Я читал предложение поручать компилятору поиск небрежных присваиваний (когда вы на самом деле подразумевали сравнение) просто размещая константы в левой части. Например, следующий фрагмент даст ошибку при компиляции, если вы используете = вместо ==:

#define MAX 100
// ...
if ( MAX == x )
// ...
В этой идее есть достоинства, но я нахожу, что такой код труднее читается.