#ifdef大家都比较熟悉,作为一个预编译开关,判读一个变量是否定义。例如
#ifdef OUT_STD
printf("xxxxxx");
#endif
我们可以在代码中 #define OUT_STD或者在makefile中 -DOUT_STD,有的时候我们可能需要判读一个组合的条件,例如 OUT_STD和OUT_FILE只要有一个定义就执行,
这个时候使用#ifdef OUT_STD || OUT_FILE是不起作用的,这里就需要使用#if defined了,他们的区别就是#if defined可以判读复杂的组合条件,例如上面的例子
#if defined(OUT_STD) || defined(OUT_FILE)
printf("xxxxxx");
#endif