-
以#号开头的命令称为预处理命令。
-
在编译和链接之前,还需要对源文件进行一些文本方面的操作,比如文本替换、文件包含、删除部分代码等,这个过程叫做预处理,由预处理程序完成。
3.与其他编程语言相比,C/C++ 语言更依赖预处理器,所以在阅读或开发 C/C++ 程序过程中,可能会接触大量的预处理指令,比如 #include、#define 等。
-
C源文件要编译、链接才能生成可执行程序
-
编译(Compile)将源文件(.c文件)转换为目标文件,VC/VS的目标文件后缀为.obj,GCC的目标文件后缀为.o。
-
编译是针对单个源文件的,一次编译操作只能编译一个源文件,多个源文件,需多次编译。
-
链接(Link)针对多个文件的,它会将编译生成的多个目标文件以及系统中的库、组件等合并成一个可执行程序。
-
预处理由预处理程序完成。进行编译时,自动调用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。
-
编译器会将预处理的结果保存到和源文件同名的.i文件中,
例如 main.c 的预处理结果在 main.i 中。和.c一样,.i也是文本文件,可以用编辑器打开直接查看内容。
-
C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等,
合理地使用它们会使编写的程序便于阅读、修改、移植和调试,也有利于模块化程序设计。
c
#include <stdio.h>
//不同的平台下引入不同的头文件
#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("http://c.biancheng.net/");
return 0;
}