C项目头文件规范 - HeavyYuan/A-CD-Record-Management-System GitHub Wiki

1.每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口(程序入口文件除外)

如果一个.c文件不需要.h,且其不是main.c,那么该文件就根本不会存在。

2. 头文件中适合放置接口的声明,不适合放置实现

头文件是模块( Module)或单元( Unit)的对外接口。头文件中应放置对外部的声明,如对外提供的函数声明、宏定义、类型定义等

内部使用的函数(相当于类的私有方法)声明不应放在头文件中,因此.c文件内部用的函数定义为static

内部使用的宏、枚举、结构定义不应放入头文件中。

变量定义不应放在头文件中,应放在.c文件中。

变量的声明尽量不要放在头文件中,亦即尽量不要使用全局变量作为接口 。

变量是模块或单元的内部实现细节,不应通过在头文件中声明的方式直接暴露给外部,应通过函数接口的方式进行对外暴露。

即使必须使用全局变量,也只应当在.c中定义全局变量,在.h中仅声明变量为全局的。

3. 总是编写内部#include保护符( #define 保护), 防止头文件被重复include

为了防止list.h被重复include, 那么,list.h的内容应该是:

#ifndef LIST_H
#define LIST_H
... //list.h的真正内容
#endif

以上规范是 本项目中遇到的,本文的内容,以及其他规范可以参考:

https://blog.csdn.net/fengcq126/article/details/103016917#_msocom_3