vc 不支持elifdef指令

发布: 2010-04-09 00:39

今天遇到在程序中需要三种情况的宏判断,使用下面的指令:

#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



原文: http://qtchina.tk/?q=node/353

Powered by zexport