gcc编译C语言程序的步骤:
1.预处理
-E 进行预处理工作
去掉注释内容 ,进行宏替换和头文件导入或者条件编译等
注:不会自动生成文件
-o 可以指定生成的目标文件 .i
2.编译
-S 检查语法错误 生成汇编程序
检查源代码或者经过预处理之后代码的语法错误,生成汇编程序 .s
3.汇编
-c
把汇编代码汇编成目标文件(二进制 .o
4.链接
链接一个或者多个目标文件生成可执行程序 默认生成a.out
链接函数调用
语法错误检查:在编译阶段
函数调用检查:在链接阶段
预处理指令
在预处理阶段就会进行处理的指令
以#开头的指令
#include 包含头文件
导入头文件中的代码
调用了标准库的函数时需要导入头文件
#include <> 与 #include ""的区别:
<> 从系统指定的路径(可配置)搜索包含的头文件
"" 从当前目录搜索包含的头文件,
注:如果在当前目录下没有找到,则去系统指定的目录下搜索
如果是包含自己写的头文件时用"",包含标准库的文件一般用<>
#define 宏、宏函数
宏名 一般用大写字母
宏定义 在预处理阶段进行简单的宏替换
例:#define PI 3.14
宏函数
例:#define POW(x) ((x)*(x))
预处理阶段不进行运算,只进行替换,所以在每个参数后边都应该加