2010-02-20 170 views
15

有没有办法在宏中检查数值相等?C宏:#if检查是否相等

我要像做

#define choice 3 

#if choice == 3 
    .... 
#endif 

#if choice == 4 
... 
#endif 

不C宏有这样的事情支持吗?

+8

你的编译器告诉你什么? – Christoph 2010-02-20 22:15:35

+1

更好的是,教科书/参考书是怎么说的? – 2010-02-20 22:55:39

回答

3

据我所知应该工作。你使用什么编译器?注:仅供参考,定义名称通常用大写字母表示!

#define CHOICE 3

18

另一种方式来写你的代码使用链式#elif指令:

#if choice == 3 
    ... 
#elif choice == 4 
    ... 
#else 
    #error Unsupported choice setting 
#endif 

注意,如果choice#defined,预处理器将其视为具有价值0