以下两个预处理器控制语句之间有什么区别(如果有)?
#if
和
#ifdef
您可以通过以下操作来展示差异:
#define FOO 0
#if FOO
// won't compile this
#endif
#ifdef FOO
// will compile this
#endif
#if
检查符号的 value,而 #ifdef
检查符号的 existence(无论其值是多少)。
#ifdef FOO
是以下命令的快捷方式:
#if defined(FOO)
#if
也可用于其他测试或更复杂的预处理器条件。
#if defined(FOO) || defined(BAR)