大程序的编译过程
一个 .c 文件称为一个编译单元
一个项目中包含许多.c和.h文件
预处理
- 作用:将项目源文件 (.c文件) 中的预处理指令进行替换
预处理指令
- 宏(#define)
- #include
#define(宏)
- 定义:#define 名字 值
名字必须是一个单词
值可以是任何东西,值进行换行输入时使用 “ \ ”
宏后可以添加注释
#include
-
定义:#include < 头文件.h >
-
< >与 " " 的区别
< >直接去编译器指定目录查找头文件
" " 先在源代码所在目录寻找头文件,无果后去编译器指定目录查找。Linux中可以通过环境变量或者编译器命令行修改编译器指定目录
头文件(.h文件) 中只包含函数原型声明和全局变量声明
-
调用和定义函数的源文件(.c文件)都应含有#include <头文件.h>
调用函数的源文件中的#include <头文件.h>作用:检测调用函数的参数和返 回值是否正确
定义函数的源文件中的#include <头文件.h>作用:检测函数对外声明的参数和返回值是否正确
变量的声明和定义
extern int gA; //变量声明
int gA=1; //变量定义
int gB; //变量定义