多个源代码文件
- 将函数分离main.c
- 将多个.c文件放入同一个项目
编译单元
- 一个.c文件就是一个编译单元
- 编译器每次编译只处理一个编译单元
头文件
- 创立头文件(.h)文件,将函数原型放入其中
- 在每一个出现该函数的.c文件里,加入函数头:#include “xxx.h”
- 在使用和定义这个函数的地方都应该#include这个头文件
- 一般做法就是任何.c都有对应同名的.h,把所有对外公开的函数的原型和全局变量的声明都放进去
不对外公开的函数
- 在函数前面加上static就使得它成为只能在所在编译单元中被使用的函数
- 在全局变量前面加上static就使得它成为只能在所在编译单元中被使用的全局变量
变量的声明
- int i;是变量的定义
- extern int i;是变量的声明
声明和定义
- 声明是不产生代码的东西
1、函数原型
2、变量声明
3、结构声明
4、宏声明
5、枚举声明
6、类型声明
7、inline函数声明 - 定义是产生代码的东西
标准头文件结构
#ifndef __LIST__HEAD__
#define __LIST__HEAD__
#include "node.h"
typedef struct _list{
Node* head;
Node* tail;
}List;
#endif
- 运用条件编译和宏,保证这个头文件在一个编译单元只会被#include一次