C程序编译过程:
1) 预编译:(其本质是将引用的文件已文本文件的方式插入到文件的开始部分)
【1】预处理阶段,凡是预处理指令内容都得进行处理
【2】预处理指令:
以"#"作为开头的命令,常见预处理指令:#define #include #if #endif #progma
#include <stdio.h> 将系统中的stdio.h文件插入到2.c程序的开始部分
#define N 10 将常量N替换为10
【3】预处理判断,预处理替换
【4】预处理之后的结果还是源文件
【5】例如预编译test1.c这个文件
gcc -E -o test11.c test1.c
即:将test1.c文件预编译(gcc -E)后保存在test11.c中
test11.c开始部分内容为复制stdio.h的内容,最后才是test1.c程序体部分
2) 编译:
【1】将预处理之后的源文件编程成二进制文件(中间文件,对象文件)
二进制文件特点:
GCC编译后的中间文件的后缀为.o
VC编译结果为.obj文件
【2】链接,将中间文件与库函数printf()链接起来
预编译:
1 #define N 10 2 3 int main() 4 { 5 int a=N; 6 }