реклама на сайте
подробности

 
 
> IAR 3.10C, Цена доверия
KSN
сообщение Dec 9 2005, 08:23
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



Вот небольшой фрагмент кода:
ktmp=0;
PultFlag=4;
for(pult=0;pult<3;pult++)
ktmp|= ((PultFlag&(0x01<<pult)))?(1<<pult):0;
ktmp=0;
PultFlag=5;
for(pult=0;pult<3;pult++)
ktmp|= ((PultFlag>>pult)&0x01)?(1<<pult):0;
Если уровень оптимизации по скорости минимален или вооще нет, то все хорошо, но как только делаю уровень оптимизации High, то в первом цикле перестает вычисляться ktmp. Поэтому вопрос: в какой степени компилятор наплевательски относится к написанному коду при оптимизациях? Как с этим обстоят дела в более поздних версиях компилятора. Я так полагаю, что не стоит полагаться на оптимизацию компилятора, надо самому грамотно писать программу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Dec 9 2005, 09:30
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Пока была только одна крутая хрень от компилятора.
Человек сделал следующее:
if чегото
if чегото2
продолжение проги

чегото и чегото2 не исчерпывали все возможные значения в условии, то есть были операции которые надо делать в любом случии.

прога работала не верно. Он залез в дебагер и увидел:
if чегото
else чегото2

сейчас он в отпуске кайфует,но если очень интересен код, могу попробовать связаться


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016