引言
今天人们越来越明白软件设计更多地是一种工程 而不是一种个人艺术 由于大型产品的开
发通常由很多的人协同作战 如果不统一编程规范 最终合到一起的程序 其可读性将较
差 这不仅给代码的理解带来障碍 增加维护阶段的工作量 同时不规范的代码隐含错误的
可能性也比较大
BELL实验室的研究资料表明 软件错误中 18%左右产生于概要设计阶段 15%左右产生于详细
设计阶段 而编码阶段产生的错误占的比例则接近 50% 分析表明 编码阶段产生的错误当
中 语法错误大概占 20%左右 而由于未严格检查软件逻辑导致的错误 函数 模块 之间
接口错误及由于代码可理解度低导致优化维护阶段对代码的错误修改引起的错误则占了一半
以上
可见 提高软件质量必须降低编码阶段的错误率 如何有效降低编码阶段的错误呢 BELL 实
验室的研究人员制定了详细的软件编程规范 并培训每一位程序员 最终的结果把编码阶段
的错误降至 10%左右 同时也降低了程序的测试费用 效果相当显著
本文从代码的可维护性 可读 可理解性 可修改性 代码逻辑与效率 函数 模块 接
口 可测试性四个方面阐述了软件编程规范 规范分成规则和建议两种 其中规则部分为强
制执行项目 而建议部分则不作强制 可根据习惯取舍
2. 编码规范
2.1. 排版风格
<规则 1> 程序块采用缩进风格编写 缩进为 4 个空格位 排版不混合使用空格和 TAB 键
<规则 2> 在两个以上的关键字 变量 常量进行对等操作时 它们之间的操作符之前 之后
或者前后要加空格 进行非对等操作时 如果是关系密切的立即操作符 如 > 后不应
加空格
采用这种松散方式编写代码的目的是使代码更加清晰 例如
(1) 逗号 分号只在后面加空格
printf("%d %d %d" , a, b, c);
(2)比较操作符, 赋值操作符"=" "+=" 算术操作符"+" "%" 逻辑操作符"&&" "&" 位
域操作符"<<" "^"等双目操作符的前后加空格
if(lCurrentTime >= MAX_TIME_VALUE)
a = b + c;
a *= 2;
a = b ^ 2;
(3)"!" "~" "++" "--" "&" 地址运算符 等单目操作符前后不加空格
*pApple = 'a'; // 内容操作"*"与内容之间
flag = !bIsEmpty; // 非操作"!"与内容之间
p = &cMem; // 地址操作"&" 与内容之间