我发现写作
#ifdef ... #elseif defined(...) #else #endif
总是导致使用#ifdef或#else条件,而不是#elseif.但是替换#elif会导致它根据定义的内容按预期工作.#elseif的存在是否有什么令人费解的目的?如果没有,为什么预处理器不抱怨?
也许这就是为什么多年(几十年,真的),我一直在使用丑陋的#else/#endif块,因为至少它们是可靠的!
c++ conditional-compilation c-preprocessor
c++ ×1
c-preprocessor ×1
conditional-compilation ×1