1、哪些地方该使用空行?
(1)ADT/UDT定义之间要留空行。ADT内部各个访问段(public、private等)之间要留空行;每一段内按照相关性分组的,建议按照各组之间留空行。
(2)函数定义之间要留空行。函数体内,完整的控制结构及单独的语句块之间要分别留出空行,它们与其他段落之间也要留出空行以示区分;最后一条return语句前要留空行,除非该函数只有这一条语句;控制结构、语句块、条件编译块等遵循同样的规则;
(3)注释行货注释块与被他们注释的程序元素之间不要留空行。
2、长行怎样拆分?
长表达式要在低优先级运算符处拆分为多行,运算符放在新行之首(以示突出)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
3、对齐与缩进
程序的分界符“{”和“}”应独占一行并且位于同一列,同时与引用它们的语句左对齐。
4、修饰符的位置
修饰符*和&应该靠近数据类型名还是靠近变量名,是一个有争议的话题。
建议:将修饰符*和&紧靠紧变量名
char *name;
int *x, y;
或者使用typedef做一个类型映射:
typedef int* PINT;
typedef int& RINT;
PINT p1, p2; //两个指针
RINT r1 = i, r2 = j; //两个引用
5、注释的风格
边写代码边加注释,修改代码的同时修改相应的注释
对于简单的函数,可以不加注释,或只用一行注释来说明其作用,对于比较复杂的函数,建议采用如下注释:
6、ADT/UDT版式
主要有两种形式:
(1)将private限定的成员写在前面,而将Public限定的成员写在后面。采用这种版式的程序员一般主张“以数据为中心“设计ADT/UDT,重点关注其内部结构;
(2)将public限定的成员写在前面,而将private限定的成员写在后面。采用这种版式的程序员一般主张”以行为为中心“设计ADT/UDT,重点关注其提供的接口。
建议:采用”以行为为中心“的方式来编写类,即首先考虑类应该提供什么样的接口(即函数)。