2. 优秀的代码文档跟编程语言知识一样重要。在代码源文件中,为每个主要的代码段添加注释,解释代码的基本逻辑。最好注明程序的构建和修改日期,以及修改的原因也是非常有必要的。/ m! f1 ? Q8 h2 R4 L, f
; k% t! Z/ ^1 U" i: `& p; ^; {& j 3. 维护程序的各个版本同样重要。当前有些编程工具都自带一个版本管理工具。无论你什么时候改变自己的程序,它们都会将其保存为.bak文件。# s. Y+ l5 B% N: _
9 F: b8 B \' U- t; k+ y- ^$ @
我的方法是为每个程序维护三个不同的版本。比如说,我有一个名为program.c的文件,这个文件同时也被其他项目组成员使用。我把这个文件复制为 program.c.old作为备份文件,并且当我修改时,我会备份另一个名为program.c.wrk的副本文件。当成功完成修改时替换 program.c.wrk文件。 7 W, _% y2 Q9 F2 L8 } , G, ^4 s) m' {" {% J 你还可以给自己的程序版本添加一个日期或一些注释,像program260505.c或programReadFnWrking.c。 # t! T: u$ J0 j7 E E ' i6 \5 s, g) ?/ _9 O 4. 如果工程包含多个源文件,则声称一个README文件,注明每个源文件、数据文件、临时文件以及日志文件(如果有的话)的作用。你还可以注明编译和运行步骤。 $ e( d# N! b5 N. i. y2 b 3 z/ s+ M" ^2 v4 K: ^! ` 5. 有时候,你一定想知道为什么IF语句没有得到预想的结果。可能你使用的是等号,也就是“=”,而不是条件判定符号“==”。一个比较好的办法是用相反的顺序写条件语句。因此,你的条件语句应该如下: 1 Z! l2 i! B7 p! B ]; e# P$ _% B) A6 M! Y
if(10==i)…因此,如果你错误地写成了单个等于号,在编译的时候也能检查出来并报错。 9 f) @" L) l9 J3 t& Y9 b7 i / D5 p6 q+ D5 d' I$ I' w& G- `0 A: s: x 6.使用循环和条件语句时,先把左右括号对应起来,然后再在里面写其他语句。也就是: % n: w+ D8 ~* U# K+ ]& L6 P( W3 f1 Y9 n- @+ C! P m [
代码: 1 for(int i=0;i<10;i++)2 {4 printf(“i=%dn”,i);3 } 注:每一行开头的数字表明写循环代码的顺序。5 i2 n, m+ H2 B/ f) X& h
- @5 ]+ e* U& V# N$ _3 t 7. 避免使用幻数(magic numbers)。例如,不要写 4 f2 ~' t% }" i E2 c9 z # Z* E3 U, [5 d0 F7 k代码: circleArea = 3.14 * pow(radius,2); 而要使用如下代码: $ Z3 |! k& V6 r2 X9 C3 B; H6 N% Z
代码: #define PI 3.14 circleArea = PI * pow(radius,2); 6 g+ K1 n* I+ F# m7 T: x
8. 使用有意义的变量和函数名称。例如,使用‘radius’来代替圆的半径,而不是用‘r’来表示。同样,函数名‘calculateArea’要比其他任 何隐晦的缩写要好得多。匆忙之下,我们也许会使用缩写的变量名,但一开始节省时间的话,之后会浪费更多的时间,去猜测缩写变量名代表什么。(编注:) , t7 M7 _" B9 Z% p* ]& F \# z+ l$ }3 n , C0 h' N- M/ p% T( y) v 9. 为后面的调试使用打印语句,这是个好习惯。但是,当完成最后代码后,去掉这些语句,有时也是一项危险的任务。添加一个方法,用于输出调试信息。当最终版本生成时,只要把这个方法注释掉就行。因此,只在一个地方做修改就可以了。 + {0 n( f+ t$ F5 c- J " A" P$ p; w$ @, P1 f7 @ 10. 代码编写完之后,开始优化代码。之前声明的一些变量,现在可能没用了。同样,并不依赖循环的一些声明可以移到循环模块之外去。扎实的编译知识同样会对以后的代码优化有所帮助。 , l+ _3 R( l6 k. P4 ?% K9 s3 u- ?% Z2 z* G5 c
11. 对自己的操作系统和硬件要有足够的了解,你可以从资源占用等方面提升程序的性能。& C: B/ K" m9 Z
6 h) _- _( W S N3 t6 w 12. 编写代码时要合理使用缩进,以使代码清晰可读。 4 ^" R1 J2 R: j) s% p ) X& m [1 u# G* \ X 13. 把项目文件放到SOURCE、HEADERS、MAKE、EXES等不同的文件夹中。, a% P. F1 G* ?) @2 f5 l