两个预处理器控制语句之间有什么区别(如果有的话).
#if
Run Code Online (Sandbox Code Playgroud)
和
#ifdef
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 121
您可以通过以下方式展示差异:
#define FOO 0
#if FOO
// won't compile this
#endif
#ifdef FOO
// will compile this
#endif
Run Code Online (Sandbox Code Playgroud)
#if
检查符号的值,同时#ifdef
检查符号的存在(无论其值如何).
ere*_*eOn 38
#ifdef FOO
Run Code Online (Sandbox Code Playgroud)
是一个快捷方式:
#if defined(FOO)
Run Code Online (Sandbox Code Playgroud)
#if
也可用于其他测试或更复杂的预处理器条件.
#if defined(FOO) || defined(BAR)
Run Code Online (Sandbox Code Playgroud)