Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Это я неправ или ИАР неправильно работает?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
shindarah
Короче я не понял...
Пишу следующий код:

if((i++)>=3){что-то сделать...}

и пишу
i++;
if(i>=3){что-то сделать...}

Работает по разному...

В первом случае сначала сравнивает, потом увеличивает i
Во втором сначала соответственно увеличивает i, потом сравнивает...

Я не вижу разницы в записи... там ведь скобки стоят - у них приоритет должен быть больше, чем у сравнения...

Может я что не понимаю? huh.gif
ig_z
Цитата(shindarah @ Mar 8 2005, 13:05)
Короче я не понял...
Пишу следующий код:

if((i++)>=3){что-то сделать...}

и пишу
i++;
if(i>=3){что-то сделать...}

Работает по разному...

В первом случае сначала сравнивает, потом увеличивает i
Во втором сначала соответственно увеличивает i, потом сравнивает...

Я не вижу разницы в записи... там ведь скобки стоят - у них приоритет должен быть больше, чем у сравнения...

Может я что не понимаю?  huh.gif
*



Точно, не понимаешь. Все достаточно ясно описано в стандарте - пост и пре, инкремент и декремент.

В первом случае компилер обязан взять значение переменной и выполнить действие (в данном случае сравнение), а затем инкрементировать ее значение.

Первый равен второму
if((++i)>=3){что-то сделать...}

Второй равен первому
if(i>=3){что-то сделать...}
i++;// ++i;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.