分类: C/C++
2010-05-12 10:42:57
这些是我在读K&R的《C程序设计语言》这本C经典著作时对C语言编程风格做的一些小结,勉励自己,并分享给大家。
1、由于例程的名字通常用下划线开头,因此变量名不要以下划线开头。
2、在传统的C语言用法中,变量用小写字母,符号常量全部使用大写字母。
3、选择的变量名要能够尽量从字面上表达变量的用途,这样做不容易引起混淆。
4、局部变量一般使用较短的变量名(尤其是循环变量),外部变量使用较长的名字。
5、用单行声明一个变量的方法书写代码需要占用较多的空间,但便于向各声明语句中添加注释,也便于修改。
6、if(!valid)一般不用if(valid = = 0)
很难判断上述两种形式哪种更好。!valid的用法读起来更直观一些(“如果不是有效的”),但是对于一些更复杂的结构可能会难于理解。
7、C语言中未对char作有符号或无符号定义,为了保证程序的可移植性,如果要在char类型中存储非字符数据,最好指定signed或unsigned限定符。
8、表达式x & ~077与机器的字长无关,它比形式为x & 0177700的表达式要好,这样可以提高移植性。
9、条件表达式中第一个表达式两边的圆括号并不是必须的,这是因为调教运算符?:的优先级非常低仅高于赋值运算符。但建议使用圆括号,因为这样可以使表达式的条件部分更易于阅读。如(a >b)? a : b
10、如果代码的执行结果与求值顺序相关,则都不是好的程序设计风格。有必要了解哪些问题需要避免。
11、if语句嵌套的情况下使用花括号
if(n>0)
if (a > b)
z = a;
else
z = b;
程序的缩进结构明确地表明了设计意图,但编译器无法获得这一信息,它会将else部分与内层的if配对。
12、作为一种良好的程序设计风格,在switch语句最后一个分支(即default分支)的后面也加上一个break语句。这样做在逻辑上没有必要,但当我们要向该switch语句后添加其他分支时,这种防范措施会降低错误的可能性。
13、牵强地把一些无关的计算放到for语句的初始化和变量递增部分是一种不好的程序设计风格,该部分放循环控制运算更合适。