Степень доверия IAR for AVR(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
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А?
Составить ответ
|||
Конференция
|||
Архив
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru