以下两个预处理器控制语句之间有什么区别(如果有的话)。
#if
和
#ifdef
答案 0 :(得分:119)
您可以通过以下方式证明其差异:
#define FOO 0
#if FOO
// won't compile this
#endif
#ifdef FOO
// will compile this
#endif
#if
检查符号的值,而#ifdef
检查符号的存在(无论其值如何)。< / p>
答案 1 :(得分:37)
#ifdef FOO
是:
的快捷方式#if defined(FOO)
#if
也可用于其他测试或更复杂的预处理器条件。
#if defined(FOO) || defined(BAR)