Степень доверия IAR for AVR(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено KSN 09 декабря 2005 г. 11:11

Использую IAR3.10C
Вот небольшой кусок кода:
ktmp=0;
PultFlag=4;
for(pult=0;pult<3;pult++)
ktmp|= ((PultFlag&(0x01< ktmp=0;
PultFlag=5;
for(pult=0;pult<3;pult++)
ktmp|= ((PultFlag>>pult)&0x01)?(1<В первом случае ktmp=4, только, если нет оптимизации по скорости. Если устанавливаю уровень High, то ktmp=0. Во втором случае, ktmp=5 всегда, внезависимости от уровня оптимизации. Вопрос: по каким признакам доверять компилятору? И исходя из чего он припоносит такие "подарки"?
Как их избежать?(Можно конечно отказаться от оптимизации, но тогда зачем ее вообще вводили в компилятор, если она такое вытворяет). Есть ли такие сюрпризы у поздних версий компиляторов,например у 4.11А?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru