1,文件包含
#include 把一个头文件导入到当前文件中
#include <>
#include ""
编译参数 -I 路径 指定头文件的加载路径
修改系统的环境变量
2,定义宏
宏常量
#define 宏名 替换的字面值数据
#define format %d%c%hhd%s%hhd
如果在代码中使用了宏,那么在预处理时会把所有的宏替换为它后面的字面值数据
优点:提高可扩展性,提高可读性,提高了安全性,与case配合使用
注意:一般宏名全部大写,末尾不加分号 不能直接换行(可以在末尾加\续行符)
宏函数
不是真正函数,只是带参数的宏,使用宏函数,先替换成宏函数后面的代码,
提供的参数会替换代码中相应的位置
#define AVG(a,b) {(a+b)/2;}
二义性:由于宏函数所处位置,参数的不同,导致同一个宏函数有多重解释结果,
这种叫做宏的二义性
每一个参数加小括号,整个式子也加小括号,不要在参数中使用自变运算符
运算符
# 把宏函数的参数变成字符串
## 合并两个参数变长标识符
3,条件编译 根据条件决定哪些代码是否参与最终的编译
#if #elif #else #ifdef #ifndef #endif
头文件卫士:
#ifndef FILENAME_H