条件编译

编译器根据条件的真假决定是否编译相关代码

常见条件编译的方法

  1. 根据宏是否定义
#ifdef <macro>
...
#else
...
#endif

举个例子

  1 #include <stdio.h>
  2 #define _DEBUG_
  3 int main(int argc,const char* argv[])
  4 {
  5 #ifdef _DEBUG_
  6         printf("Hello World\n");
  7 #else
  8         printf("Welcome to my blog!\n");
  9 #endif
 10         return 0;
 11 };
 10 }

这里的_DEBUG_定义了,所以打印Hello World

  1 #include <stdio.h>
  2 int main(int argc,const char* argv[])
  3 {
  4 #ifdef _DEBUG_
  5         printf("Hello World\n");
  6 #else
  7         printf("Welcome to my blog!\n");
  8 #endif
  9         return 0;
 10 }
~                                                                                                             ~          

没定义的话

![](file://C:\Users\meowrain\AppData\Roaming\marktext\images\2023-12-29-10-33-28-image.png?msec=1703817209013)

#ifndef 是没有定义的意思

#ifdef是定义了的意思

还可以这么用

  1 #include <stdio.h>
  2 #define _DEBUG_ 1
  3 int main(int argc,const char* argv[])
  4 {
  5 #if _DEBUG_                                                                                                 6         printf("Hello World\n");
  7 #else
  8         printf("Welcome to my blog!\n");
  9 #endif
 10         return 0;
 11 }