主要差别如下:
#if defined 和 #if !defined 能跟多个宏组合逻辑
#ifdef 和 #ifndef 仅能跟一个宏定义参数
举例:
#if defined A || defined B /* A或 B被定义,则选择执行printf1,否则执行printf2 */
printf1(".....");
#else
printf2(".....");
#endif
#if !defined A && !defined B /* A与 B未被定义,则选择执行printf1,否则执行printf2 */
printf1(".....");
#else
printf2(".....");
#endif
--------------------------------------------------------------------------------------------------------------------
-#ifdef A
printf1(".....");
#endif
-#ifndef A
printf1(".....");
#endif