什么是预处理
C语言源文件要经过编译、链接才能生成可执行程序
-
编译(Compile):将源文件(.c文件)转换成目标文件(.o,.obj等)
-
链接(Link):将编译生成的多个目标文件及系统中的库、组件等合并成一个可执行程序
在编译之前对源文件进行简单加工的过程,就称为预处理,即预先处理、提前处理
实例
#include <cstdio>
//不同的平台下引入不同的头文件
#if _WIN32 //识别windows平台
#include <windows.h>
#elif __linux__ //识别linux平台
#include <unistd.h>
#endif
int main() {
//不同的平台下调用不同的函数
#if _WIN32 //识别windows平台
Sleep(5000);
#elif __linux__ //识别linux平台
sleep(5);
#endif
puts("hello world");
return 0;
}
总结
#include、#if、#elif、#endif都是预处理命令,也就是说不同平台下预处理之后源代码是不同的。这就是预处理阶段的工作,它把代码当成普通文本,根据设定的条件进行一些简单的文本替换,将替换以后的结果再交给编译器处理