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

 
 
> 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
Ответов
mse
сообщение Dec 9 2005, 08:32
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Ну прально
Цитата
ktmp|= ((PultFlag&(0x01<<pult)))?(1<<pult):0;
ktmp=0;

результата использования ktmp нет, зачем её вычислять ваще? Оптимизаццыя то по скорости! ;О) В других оптимизаццыях компилер предполагает, что это, мобуть, какая-то задержка калиброванная ;О) и не торгает. А при макс скорости он её таво...
Go to the top of the page
 
+Quote Post



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

 


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


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