编程风格有着廉价的学习成本,但是我们常常会疏忽它。随着编程代码量及代码阅读量的增多,发现其实编程风格是相当重要的,一个好的编程风格,可以起到点睛之笔,锦上添花的效果。
编写代码时,首先我们应该考虑的是阅读者,而不是编码者。
对于C语言编程风格,我想给出下面这些建议。
文件名: 对于文件的命名常常是众多初学者头疼的问题,以及使别人头疼的问题。我们常常命名难,是因为我将太多的东西糅杂到一个文件中。而更好的做法是小而精,文件中代码不一定要大量,但是一定要精。小的东西方便阅读,修改,重用。文件的命名为了达到见名知意,我建议这样命名:使用英文,单词小写,单词之间用下划线分隔。尽量少使用缩写。
list.c or dynamic_list.c
头文件: 尽量每一个
.c
文件配有一个.h
头文件,头文件使用#define
保护:<PROJ>_<PATH>_<NAME>_H_
#ifndef HELLOWORLD_SRC_LIST_H_ #define HELLOWORLD_SRC_LIST_H_ .... #endif //HELLOWORLD_SRC_LIST_H_
宏定义: 单词大写,下划线分隔
#define MAX_LEN 10
函数名: 单词小写,下划线分隔单词,使用主谓语的格式。函数实现的功能尽量功能单一。
list_append();
变量: 避免关键字和保留字,连写,第一个单词首字母小写,其他字母首字母大写。声明时一定初始化。将变量声明到其使用的最近地方。注意全局变量,尽量少使用全局变量。
int thisAmount = 0;
结构体&枚举&联合名: 首字母大写,多单词连着写
struct DynListNode;
Includes: include 的引用顺序如下
#include <c_system_files> #include <your_proj_files>
注释: 文件说明,函数说明等等,在合理的地方使用注释,不要吝啬单词。代码应该优先考虑阅读者。
布局排版: 为了方便阅读,代码的排版也是一个不能忽视的问题,为了是代码更美观,我们得考虑缩进、空白、括号 等的使用
- 缩进使用空格替代,4个空格
- 操作符前后合理使用空格
- 函数体之间使用空行
- 表达式使用括号使逻辑更清晰,而不仅仅依赖优先级