有没有办法在宏中检查数值相等?C宏:#if检查是否相等
我要像做
#define choice 3
#if choice == 3
....
#endif
#if choice == 4
...
#endif
不C宏有这样的事情支持吗?
有没有办法在宏中检查数值相等?C宏:#if检查是否相等
我要像做
#define choice 3
#if choice == 3
....
#endif
#if choice == 4
...
#endif
不C宏有这样的事情支持吗?
的确应该有效。请参阅http://gcc.gnu.org/onlinedocs/cpp/If.html#If
该参考文献是准确的,但用“标准格式”编写: 抽象地没有示例。
据我所知应该工作。你使用什么编译器?注:仅供参考,定义名称通常用大写字母表示!
#define CHOICE 3
另一种方式来写你的代码使用链式#elif
指令:
#if choice == 3
...
#elif choice == 4
...
#else
#error Unsupported choice setting
#endif
注意,如果choice
不#defined
,预处理器将其视为具有价值0
。
你的编译器告诉你什么? – Christoph 2010-02-20 22:15:35
更好的是,教科书/参考书是怎么说的? – 2010-02-20 22:55:39