有没有办法检查宏中的数字相等性?
我想做点什么
#define choice 3
#if choice == 3
....
#endif
#if choice == 4
...
#endif
C宏是否支持这样的事情?
答案 0 :(得分:25)
确实应该有效。见http://gcc.gnu.org/onlinedocs/cpp/If.html#If
该引用是准确的,但是以“标准格式”编写:抽象地没有示例。
答案 1 :(得分:25)
编写代码的另一种方法是使用链式#elif
指令:
#if choice == 3
...
#elif choice == 4
...
#else
#error Unsupported choice setting
#endif
请注意,如果choice
不是#defined
,则编译器(预处理器)会将其视为值0
。
答案 2 :(得分:5)
据我所知,应该有用。你使用什么编译器?
PS:仅供参考,定义名称通常以大写字母书写!
#define CHOICE 3