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