C语言编程规范(头文件规范)

  • C语言的规范使用,有利于提高代码的清晰、简洁、可测试、安全、效率、可移植,因此必须规范使用C语言编程

代 码 总 体 原 则 : \color{red}{代码总体原则: }

  • 1.清晰第一:清晰有利于程序维护和重构,代码的可读性高于性能,仅在性能到达瓶颈时,才主动优化。
  • 2 简洁为美:简洁易于理解和实现。废弃的代码及时清除,重复代码尽可能提炼为函数。
  • 3选择合适的风格,与原代码风格保持一致

1.头文件

对于C语言来说,头文件的设计体现了大部分的系统设计

  • 1.1 头文件适合放置接口的声明,不适合放置实现。 变量的声明尽量不要放在头文件,尽量不要使用全局变量作为接口。变量是模块的内部实现细节,不应通过头文件声明的方式直接暴露给外部,应通过函数接口的方式对外暴露。
  • 1.2 头文件应职责单一。 头文件过于复杂,导致编译时间长。
  • 1.3 头文件应当向稳定的方向包含。 应当使不稳定的模块依赖于稳定的模块,从而不稳定模块发生改变时,不会影响稳定模块的编译。

规则1.1 每一个.C文件应有一个同时.h文件,用于声明对外的接口
规则1.2 禁止头文件循环依赖
规则1.3 .c/.h禁止包含用不到的头文件
规则1.4 头文件应自包含(自包含就是任意一个头文件均可独立编译)
规则1.5 总是编写内部#include 保护符(#define 保护) (通常的手段就是每个文件配置一个宏,当头文件第一次被包含时,就定义这个宏,并在头文件再次被包含时使用它以排除文件内容)
#ifndef
#define
……
#endif
规则1.6 禁止在头文件中定义变量
规则1.7 只能通过包含头文件的方式使用其它.c提供的接口,禁止在.c中通过extern 的方式使用外部函数接口、变量( 若在a.c使用了b.c定义的foo()函数,则应当在b.h中声明extern int foo(int input) ,并在a.c中直接写extern int foo(int intput) 来使用foo()函数)
建议1.1 一个模块通常包含多个.c文件,建议放在同一个目录下,目录名及为模块名,为方便外部外部使用者,建议每一个模块提供一个.h,文件名即为目录名 (需要注意的是,这个.h文件并不是简单的包含所有的内部的.h文件,它是为了模块使用者提供方便,对外提供的模块接口)
建议1.2 如果一个模块包含多个模块,则建议每一个子模块提供一个对外的.h文件名为子模块名
建议1.3 头文件不要使用非习惯用法的扩展名
建议1.4 同一产品统一包含头文件的顺序(头文件排列顺序:功能块排序、文件名排序、稳定度排序)

你可能感兴趣的:(C语言编程规范(头文件规范))