编程箴言(Programing Adages)

1.通用

1.1注释、注释、注释。在程序中加大量的注释。这不仅让别的程序员知道你做了什么,也提醒你自己。

1.2遵守KISS准则(Keep It Simple, Stupid)。清晰、简介远比复杂和巧妙好得多。

1.3避免副作用。使++和--单处一行。

1.4使用前缀形式的++和--(++X, --X),而避免使用后缀形式(X++, X--)。这条准则对C编程没有什么意义,但是非常有助于转向C++编程。

1.5不要在条件判断中包含赋值语句。

1.6不要再别的语句中进行赋值。

1.7了解=和==的区别。在需要==的地方使用=是一个非常常见而又非常难以发现的错误。

1.8使空语句突出。

for( i = 0; i < n; ++i)  ;

不如:

for( i = 0; i < n; ++i)

     continue;

                                           

2.设计

2.1当在设计程序框架时,牢记“大众法则”。这个法则是指:不要让你的程序以奇怪的方式工作。

2.2尽可能保证用户接口的简介和一致性。

2.3给用户尽可能多的帮助(或说明)。

2.4让所有的错误信息都有明显的 "error "来标识。并且给出修正错误的方法。

 

3.声明

3.1让每一个变量的声明单独占一行,并且对其用途给出注释。

3.2让变量的名字详细易于理解,但是不要太长而不易书写。通常两三个单词就足够了。

3.3不要使用默认(隐式)声明。比如:对于返回int类型函数,最好加上int关键字,而不要使用默认规则省略。

3.4函数所有的参数应当声明并加上注释。最好不要省略参数名。

3.5不要使用奇怪的main函数形式,应该始终使用常用形式:int main(void)或者int main(int argc, char *argv[ ])

 

4.switch语句

4.1switch语句中应该始终包含default子句。即使它什么也不做,也应该写上。

4.2每个case子句都应当用break结尾,如果是功能决定不使用break则要加上注释说明(/* Fall through*/)。

 

5.预处理

5.1在#define定义的所有的常量表达式的左右都加上括号()。

5.2如果可能尽量使用const来声明常量,而不要使用#define。

5.3对于带参数的宏定义,参数都要加上括号()。

5.4对于较复杂的宏定义,使用{}。比如:#define DIE(msg)    { printf(msg);  exit(8);}

5.5在使用#ifdef / #endif 来标识条件编译结构时,让#define和#undef放在尽可能靠近代码的顶端,并且对他们加上注释。

 

6.编码风格

6.1一个代码块({...})如果过长,则应该把它分割为多个较简洁过程。

6.2当一行代码过长超过屏幕宽度时,应该把它分为多行显示。

 

7.编译

7.1编写Makefile以便让其他人知道如果编译你的代码。

7.2打开编译选项,让编译器报出错误和警告。

 

NOTE:

就在你认为已经了解了所有能让你的代码崩溃的C语言的特性时,请三思。总有未发现的东西会让你跌破眼镜。

 

 

原文见:《Practical C Programing  3rd Edition 》Steve Oualline第23章

你可能感兴趣的:(Steve,Oualline,C,编码风格)