预处理器指令#if和#ifdef之间的区别

两个预处理器控制语句之间有什么区别(如果有的话)。

#if 

 #ifdef 

您可以通

 #define FOO 0 #if FOO // won't compile this #endif #ifdef FOO // will compile this #endif 

#if检查符号的 ,而#ifdef检查符号的存在 (不pipe其值如何)。

 #ifdef FOO 

是一个捷径:

 #if defined(FOO) 

#if也可以用于其他testing或更复杂的预处理器条件。

 #if defined(FOO) || defined(BAR)