Ответ 1
Действительно, это должно сработать. См. http://gcc.gnu.org/onlinedocs/cpp/If.html#If
Эта ссылка точна, но написана в "формате стандартов": абстрактно без примеров.
Есть ли способ проверить числовое равенство в макросах?
Я хочу сделать что-то вроде
#define choice 3
#if choice == 3
....
#endif
#if choice == 4
...
#endif
Поддерживаются ли макросы C для таких вещей?
Действительно, это должно сработать. См. http://gcc.gnu.org/onlinedocs/cpp/If.html#If
Эта ссылка точна, но написана в "формате стандартов": абстрактно без примеров.
Другой способ написания вашего кода использует цепочечные директивы #elif
:
#if choice == 3
...
#elif choice == 4
...
#else
#error Unsupported choice setting
#endif
Обратите внимание, что если choice
не #defined
, компилятор (препроцессор) обрабатывает его как имеющий значение 0
.
Насколько я знаю, это должно сработать. Какой компилятор вы используете?
PS: Только для информации имена имен обычно записываются в шапки!
#define CHOICE 3