Исходя из этого вопроса Как отловить пустой определенный макрос с помощью gcc? У меня есть другая проблема.Как отловить неопределенный макрос в состоянии препроцессора #if
?Пример кода:
#include <stdio.h>
int main()
{
#if ENABLE_SOMETHING == 1
... do something ..
#endif
return 0;
}
Есть ли способ отловить ошибку / предупреждение, когда ENABLE_SOMETHING
не установлен с помощью компилятора gcc (может быть, какой-нибудь флаг)?Или, может быть, есть внешние инструменты, которые я могу использовать?
Я знаю, чем могу написать что-то вроде этого:
#ifndef ENABLE_SOMETHING
#error "ENABLE_SOMETHING undefined!"
#endif
Но у меня огромное количество различных определений (ENABLE_STH1
, ENABLE_STH2
, ENALBE_STH3
... и т. Д.) В коде, и я не хочу это исправлять вручную.Я ищу какое-то автоматическое решение для нашего проекта.