3
我发现,写#elseif VS #elif指令(C/C++预处理器)
#ifdef ...
#elseif defined(...)
#else
#endif
总是导致使用任一的#ifdef或#else伪条件,从来没有#elseif。但是,用#elif替代它会导致它根据所定义的内容按预期工作。 #elseif的存在有什么复杂目的,如果有的话?如果没有,为什么预处理器不抱怨?
也许这就是为什么多年来(几十年,真的),我一直在使用丑#else /#endif块,因为至少他们是可靠的!
如果'#ifdef'后面的东西被定义了,你会看到一个“Invalid preprocessing directive”错误。 ([示例](http://ideone.com/FCPtSD)) – molbdnilo