dimitryl 0 21 июня, 2007 Опубликовано 21 июня, 2007 · Жалоба IAR Atmel AVR C/C++ Compiler V4.21A/W32, Evaluation Version btTemp далее не используется. компилировалось с ключом -s2 (Best debug support) листинг: 1) 129 Uart1_context.bTxCount= btTemp + 1; \ 00000084 2F08 MOV R16, R24 \ 00000086 9503 INC R16 \ 00000088 9300.... STS (Uart1_context + 2), R16 2) 129 Uart1_context.bTxCount= ++btTemp; \ 00000084 9583 INC R24 \ 00000086 2F08 MOV R16, R24 \ 00000088 2F80 MOV R24, R16 \ 0000008A 9300.... STS (Uart1_context + 2), R16 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 21 июня, 2007 Опубликовано 21 июня, 2007 · Жалоба Ну и к чему это сообщение? Вы знаете почему это так или как этого избежать или как это может помешать работе программы, или просто поприкалываться решили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 21 июня, 2007 Опубликовано 21 июня, 2007 · Жалоба А в чем тут прикол? В данном случае операция btTemp + 1 аналогична btTemp++, т.е. постинкременту. Во втором же случае использован прединкремент. Отсюда и разница в исходнике. Никакого прикола нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimitryl 0 21 июня, 2007 Опубликовано 21 июня, 2007 · Жалоба В этом конкретном примере не совсем правильная работа с регистровыми переменными, приводящая к появлению лишней команды копирования из регистра в регистр. Ну а в виде MOV R16, R24 MOV R24, R16 по моему заставляет улыбнуться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 21 июня, 2007 Опубликовано 21 июня, 2007 · Жалоба btTemp далее не используется. Что такое "далее не используется"? Программа линейная и потом останавливается? Переменная где определена? 1) Было изменено значение переменной и вполне естественно, что компилятор сохраняет ее значение. На каком основании он ее должен кинуть? Только если переменная определена внутри функции. 2) Даже если она так определена, то Вы, как программист, зачем ее модифицируете, если потом не используете? Хотите, чтобы компилятор был умнее Вас? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться