条件编译
编译器根据条件的真假决定是否编译相关代码
常见条件编译的方法
- 根据宏是否定义
#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 }