#ifdef MACRO
statement...
#else
statement...
#endif
检测MACRO
是否已经被定义了。
单分支:
#ifdef MACRO
//some code
#endif
双分支:
#ifdef MACRO
//some code
#else
//some code
#endif
#ifdef DEBUG
printf("debug");
#endif
#ifdef DEBUG
printf("debug");
#else
printf("release");
#endif
#ifdef MACRO
与#if defined (MACRO)
等价。
#ifdef MACRO
只能判断一个宏
,而#if defined (MACRO1) && defined (MACRO2)
却可以判断多个宏
。
#if defined (DEBUG)
printf("debug");
#endif
#if defined (DEBUG)
printf("debug");
#else
printf("release");
#endif
#include <stdio.h>
#if defined (__GNUC__) && defined (__GNUC_MINOR__) && defined (__GNUC_PATCHLEVEL__)
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
int main() {
/* Test for GCC > 3.2.0 */
#if defined(GCC_VERSION) && GCC_VERSION > 30200
printf("GCC_VERSION = %d\n", GCC_VERSION);
#endif
return 0;
}