第一章:缩进
制表符是8个字符。3级以上的缩进是有问题的,需要修改程序。
在switch语句中消除多级缩进:让switch和从属它的case标签对齐。
不要把多个语句放一行,除非想隐藏什么东西。
不要用空格来缩进,不要再行尾留空格。
第二章:长的行和字符串的分拆
每行限长80列。
第三章:括号和空格的放置
所有非函数语句块,起始大括号放行尾,结束大括号放行首。不过,命名函数例外,起始大括号放置于下一行开头。
在if,switch,case,for,do,while后面加一个空格,sizeof,typeof,alignof后面无空格。
不要在小括号里的表达式两侧加空格。
指针声明*靠近变量名或者函数名,而不是靠近类型名。
大多数二元和三元操作符两侧使用一个空格,但一元操作符后不要加空格。
第四章:命名
不提倡大小写混用的名字。
全局变量尽可能具体,本地变量视情况而定。
第五章:typedef
Typedef只有在如下情况使用:(a)完全不透明的对象,用typedef来隐藏细节(b)清楚的整数类型。….
第六章:函数
函数应该简短而漂亮,并且只完成一件事情。只做一件事情,并且把它做好。使用辅助函数,并为之取具体描述性的名字。本地变量个数不超过5-10个。
不同函数用空行隔开。
第七章:集中的函数退出途径
Goto的好处
第八章:注释
永远不要在注释里解释你的代码是如何运作的:更好的做法是让别人一看你的代码就可以明白,解释写的很差的代码是浪费时间。
你的注释要告诉别人你的代码做了什么,而不是怎么做。放在函数头部。
第十二章:宏、列举和RTL
定义常量和列举里的标签的宏的名字需要大写。
第十三章:打印内核消息
内核信息不必以句点结束。
第十四章:分配内存
第十五章:内联弊病