在编译时可以获得枚举成员的值吗?在编译时可以获得枚举成员的值吗?
事实上,我希望能够做这样的事情:
enum {
FOO_FIRST = -1,
FOO_A,
FOO_B,
FOO_C,
FOO_LAST
};
#if FOO_LAST > 10
//...
#else
//..
#endif
我知道cpp
不知道的变量,语法错误等;只有以#
(右)开头的东西?但枚举的成员具有固定大小,不能像10(常量整数)值一样更改,编译器知道它的大小和值。那么,是否没有可能做这样的比较(就像我上面所做的那样)? gcc-extensions也非常赞赏。
这只是一个尝试,不要用#define
s来重写我所有的枚举,也不要花时间去做一些宏的改变。
你在'#if'块中想要做什么? – ecatmur
不能想到任何实际的用例,这是有用的.. –
[enum和#define](http://stackoverflow.com/questions/136946/difference-between-enum-and-define-statements) – SparKot