预编译又称为预处理,是做些代码文本的替换工作
就是为编译做的预备工作的阶段.
把.c .h .cpp .cxx .hpp 等扩展名文件预编译成一个.i 文件。
相当于如下命令:
$gcc -E hello.c -o hello.i 或者 $cpp hello.c > hello.i
主要处理源代码中那些以 “#”开始的预编译指令, 如: #include #define 等,主要规则如下,
1. 将所有的#define 删除,并且展开所有的宏定义。
2.处理所有的 #if #ifdef #elif #else #endif
3 删除所有的注释
4添加行号和文件名标识 如 #2 "hello.c" 2 用于调试 和编译产生错误报告显示行号
5 保留所有的#pragma 编译器指令