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

 
 
> IAR 4.31 глюки с константами.
KAlex
сообщение Jun 8 2012, 12:20
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



В чем разница этих двух строк:
memory_cap = 0xFFFFFF - Y_SIZE;
memory_cap = 0xFFFFFF - (Y_SIZE);

Y_SIZE определен как константа в globals.h.

В листинге:
memory_cap = 0xFFFFFF - Y_SIZE;
00001F9E 2000 MOV R0, #0
00001FA0 1C05 MOV R5, R0
memory_cap = 0xFFFFFF - (Y_SIZE);
00001FA2 483F LDR R0, [PC,#0x0FC] ; [0x20A0] =0xFEACFF
00001FA4 1C05 MOV R5, R0

Или я что-то не понимаю?
IAR 4.31
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Jun 8 2012, 12:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Хм, в чём именно проблема? Никакого криминала не видно.
Кстати, листинг без контекста вообще не интересен. Фигурально выражаясь, по фотографии ушей предлагаете судить о форме носа.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Jun 8 2012, 12:50
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(scifi @ Jun 8 2012, 16:37) *
Хм, в чём именно проблема? Никакого криминала не видно.

В первом случае memory_cap = 0 получается, вот криминал.

Цитата(scifi @ Jun 8 2012, 16:43) *
Вот почему все твердят, что макрос должен быть завёрнут в скобки.


Но почему только когда я вычитаю константу такая фигня происходит?
memory_cap *= Y_SIZE; - вот это работает правильно, несмотря на отсутствие скобок.
Go to the top of the page
 
+Quote Post



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

 


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


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