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

 
 
> Как проверить вычисленную переменную в #if
-AZ-
сообщение Jun 12 2016, 09:11
Сообщение #1


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

Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488



Как проверить вычисленную переменную в #if c целью вывода #warning
Например:

#define X round((F32_t)11.2)
#if (unsigned int)X>10
#warning X больше 10
#endif

Ошибки:
Error[Pe059]: function call is not allowed in a constant expression
Error[Pe031]: expression must have integral type


Kакие решениия есть?
Спасибо.

Сообщение отредактировал phenixs - Jun 12 2016, 09:23
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jcxz
сообщение Jun 12 2016, 17:18
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(phenixs @ Jun 12 2016, 15:11) *
Kакие решениия есть?

Выражение в #if должно быть вычисляемым препроцессором, а он не знает что такое "unsigned int" и "(F32_t)" и, вероятно, что такое "round()".
Go to the top of the page
 
+Quote Post



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

 


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


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