Работа над ошибками и предупреждениями препроцессора я обнаружил следующее:C директива ошибки определяется поведение
При использовании
#define TEST 4
#ifdef TEST
#error "Wrong Test"
#endif
Он покажет ошибку во время компиляции, однако с помощью
#define TEST 4
#if (TEST==3)
#error "Wrong Test"
#endif
Воли все еще показывают ошибку, чего не ожидается. Изменение #error
директива с #warning
все работает как ожидалось.
Может кто-нибудь объяснить, как обойти эту проблему, поскольку в нашем процессе компиляции мы останавливаемся на ошибках, а не на предупреждениях.
Возможный дубликат [Есть ли способ проверить макрос и определить его значение одновременно) (http://stackoverflow.com/questions/17160755/is-there-a- way-to-both-check-a-macro-is-defined-and-it-equals-a-defined-value-at) – FalconUA
Какой компилятор вы используете? Это работает правильно для меня с gcc. –
Аноним мой компилятор - это рука gcc 4.8.1. Однако я отвлек тестовый пример, и действительно этот случай работает, но в моем исходном файле он, похоже, не работает. Я вернусь к этому – EmbedWise