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

 
 
 
Closed TopicStart new topic
> Вычисления в препроцессоре GCC, Как проверить результат?
tazik
сообщение Apr 18 2010, 09:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Вопрос по препроцессору WinAVR.
В заголовочном файле провожу вычисления констант:

#define MAX_RPM 6000LU
#define LED_COUNT 21LU
#define LED_STEP (MAX_RPM)/LED_COUNT

Как можно заставить компилятор выводить вычисленные значения?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 18 2010, 09:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(tazik @ Apr 18 2010, 12:26) *
Как можно заставить компилятор выводить вычисленные значения?

Это не компилятор, Это препроцессор. Можно получить исходный текст после прохода препроцессора. Ключик -E
Но что-то мне подсказывает, что желание посмотреть на результат, возможно, пройдет после:
Код
#define MAX_RPM    (6000LU)
#define LED_COUNT     (21LU)
#define LED_STEP     ((MAX_RPM)/(LED_COUNT))


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
tazik
сообщение Apr 18 2010, 10:02
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(zltigo @ Apr 18 2010, 17:40) *
Это не компилятор, Это препроцессор. Можно получить исходный текст после прохода препроцессора. Ключик -E
Но что-то мне подсказывает, что желание посмотреть на результат, возможно, пройдет после:
Код
#define MAX_RPM    (6000LU)
#define LED_COUNT     (21LU)
#define LED_STEP     ((MAX_RPM)/(LED_COUNT))



Cпасибо за обе подсказки )
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 18 2010, 10:06
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(zltigo @ Apr 18 2010, 13:40) *
Код
#define MAX_RPM    (6000LU)
#define LED_COUNT     (21LU)
А зачем константы в скобки прятать, выражения понятно, аргументы макросов тоже понятно, ну а тут по привычке что лиsmile.gif?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 18 2010, 10:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(demiurg_spb @ Apr 18 2010, 13:21) *
А зачем константы в скобки прятать, выражения понятно, аргументы макросов тоже понятно, ну а тут по привычке что лиsmile.gif?

Перестраховка, но не совсем, например, для того, что-бы нельзя было их явно нельзя было использовать для контекации. Заодно заготовка под константы типа (60+1), которые уже лучше в скобки, дабы не полагаться только на правильное использование этого дефайна другими пользователями. В данном случае перестраховка была сделана по причине того, что у Автора где-то там возникли проблемы - едва-ли он из праздного любопытства захотел узнать результат.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 18 2010, 18:45
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Понятно. Вопросов больше не имею.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

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

 


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


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