说明:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
QQ 群 号:513683159 【相互学习】
内容来源:
《系统程序员成长计划》
目录:
命名要展示对象的功能
文件名:单词小写,多个单词下划线分隔
文件名要能传达文件内容。(易寻找)
将一类代码放一块。(易取名)
如:dlist.c
(d为double缩写)
函数名:单词小写,多个单词下划线分隔
一个函数只完成单一功能。(不可根据代码量衡量)
函数名要直观体现功能。(若取名困难说明设计不合理)
如:find_node
变量名:单词小写,多个单词下划线分隔
如:DListNode* node = NULL;
结构/枚举/联合名:首字母大写,多个单词连写
如:struct _DListNode;
宏名:单词大写,多个单词下划线分隔
如:#define MAX_PATH 260
面向对象的命名方式
①以对象为中心,采用“主语(对象)+谓语(动作)”形式命名。
如:dlist_append
②第一个参数为对象,并用thiz命名。
如:dlist_append(DList* thiz,void* value);
③对象有自己的生命周期,因此都有相应的创建和销毁函数。
排版布局
合理使用空行
(1)函数体之间用空行分隔。
(2)结构/联合/枚举声明用空行分隔。
(3)不同功能的代码块之间用空行分隔。
(4)将功能类似的代码(如宏定义、类型定义、函数声明和全局变量)放在一起,和其他部分用空行分隔。
(5)使用空行时,一行就够了,不要使用连续多个空行,那样会让人感觉代码段空荡荡的。
合理使用空格
(1)等号两边用空格。
如: int a = 100;
(2)参数之间用空格。
如: test(int a, int b, int c)
(3)语句末的分号与前面内容不要加空格。
如:test(a, b,c);
(4)其他能让代码更美观的地方。
合理使用括号
(1)用括号分隔子表达式,不要只靠默认优先级来判断。
如:((a && b)||(c && d))
(2)用括号分隔if/while/for等语句的代码块,那怕代码只有一行。如:
如:if(a > b)
{
return c;
}
合理的缩进方式
每一级都正常缩进,用tab缩进取代空格缩进(Linux内核源代码也遵循此规则)。用空格缩进的目的是防止代码因编辑器的tab宽度不同而变乱,这个担心现在是多余的了,代码编辑器都每一级都正常缩进,用选项卡缩进取代空格缩进(linux内核源代码也遵循此规则)。用空格缩进的目的是防止代码因编辑器的选项卡宽度不同而变乱,这个担心现在是多余的了,代码编辑器都支持tab宽度设置了。如果代码缩进的层次太多(比如超过三层),则可能是代码设计上出了问题。