vc 不支持elifdef指令
今天遇到在程序中需要三种情况的宏判断,使用下面的指令:
#ifdef A
.....
#elifdef B
....
#else
...
#endif
但到了vc下编译怎么也会跳到#else块,而B的确是定义了的宏,是vc中不支持这个预编译指令吧。
现在只好先把这个写成嵌套式的ifdef
#ifdef A
...
#else
#ifdef B
....
#else
....
#endif
#endif
这样应该在gcc,vc下都能编译了。
+++++++++++++++++
最近读了些代码,知道还有另外一种通用的写法。 不使用#elifdef这个指令,而使用#elif 和 defined() 的组合,也能达到同样的效果,而且格式看起来还不错。
#if defined(something)
.....do 1
#elif defined(sth2)
.....do 2
#elif defined(sth3)
.....do 3
#else
.....do 4
#endif
在实际编程中使用到条件编译,从网上收集,珍藏的,经证实,可用。