预处理指令:
程序员所编写的代码并不能被真正的编译器编译,需要一段程序把代码翻译一下。
翻译的过程叫做预处理,被翻译的代码叫做预处理指令,以#开头的都是预处理指令
查看预处理的结果:
gcc -E code.c 把预处理的结果打印到终端上
gcc -E code.c -o code.i 把预处理的结果储存到code.i文件中
预处理指令的分类:
#include 文件包含
#include <> 从系统指定的路径下查找并导入头文件
#include “” 先从当前路径下查找,如果找不到再从系统指定路劲查找并导入头文件
操作系统通过设置环境变量来指定头文件的查找路径,或者通过设置编译参数 -I /path
#define 定义宏
宏常量:#define MAX 100
优点:提高代码拓展性、提高可读性、提高安全性、可以用在case后面。
注意:末尾不要加分号,一般宏名全部大写
【全局变量:首字母大写 局部变量:全部小写】
【函数名:小写加下划线 指针:p 数组:arr 字符串:str】
预定义的宏:
1__func__ 获取当前函数名
2__FILE__ 获取当前文件名
3__LINE__ 获取当前行号
4__DATE__ 获取当前日期
5__TIME__ 获取当前时间
宏函数:带参数的宏
#define sum(a,b) a+b
不是真正的函数,没有函数传参,不检查参数类型,没有返回值,只有计算结果
#define avg(a,b,c) (a+b+c)/3