第二章 程序的版式
1. 每个申明之后,函数定义之后都要加空行
2. 每个函数体内,逻辑上密切相关的语句间不佳空行,其他地方应加空行分隔
3. 一行代码只做一件事情,如只定义一个变量,只写一条语句,这样方便阅读,便于注释。
★实例:
int width; int width, heigh, deepth;
int heigh;
int deepth;
良好代码 不良代码
4. if, for, while, do语句独占一行,不可紧接执行语句,不论多少代码都要加{},以防失误。
★实例:
if (width < heigh) if(width < heigh) dosomething();
{
dosomething();
}
良好代码 不良代码
△尽量定义变量时同时初始化,以防止引用未初始化的变量导致出错。
5. 关键字之后要留空格,const, virtual, inline, case等应至少留一个,而if, for ,while等应留一个空格,以突显关键字。
★实例:
if (year == 2000)
6. 函数名之后不要留空格,以区别关键字对待。
★实例:
void func(int *);
7. '('向后紧跟,')'、','、';'向前紧跟,不留空格。
★实例:
if (year == 2000);
8. ','之后要留空格,';'若不是一行结尾符号,应留空格。
★实例:
func(int x, int y, int z);
for (int=0; i<n; i++);
9. 赋值、比较、算术、逻辑、位域操作符,如"="、"+="、"-="、">="、"+"、"≠"、"%"、"&&"、"||"、"<<"、"^"等二元操作符前后应加空格。
10. 一元操作符,如"!"、"~"、"++"、"--"、"&"等前后不加空格。
11. 像"[]"、"."、"->"这类操作符前后不加空格。
△为了紧凑起见,较长的for、if语句可适当去掉一些空格。
★实例:
if ((a<=b) && (c<=d)) //仅&&前后有空格
12. 程序分界符'{'、'}'应独占一行,则位于同一列,同时与引用它们的语句左对齐。
13. {}之内的代码块应在'{'右边数空格处左对齐。
14. 代码行最大长度宜控制在70~80个字符,不宜过长。
15. 长表达式应在低优先级处拆分成新行,且操作符放于首行,拆分出的新行应适当的缩进排版。
★实例:
if ((very_length_variable1 >= very_length_variable2)
&& (very_length_variable3 <= very_length_variable4))
{
...
}
16. 修饰符 *和&应紧靠变量名
★实例:
int *name;
int *x, *y;
17. 代码注释仅起到提示作用,不宜过多。
18. 注释应于代码相邻,可位于其上方或右方,不可位于其下方。
19. 代码较长,有多重循环时应标明注释,方便阅读。
★实例:
if (...)
{
...
while(...)
{
...
}//while
...
}//if
20. 类的版式
class A class A
{ {
private: public:
int x, y; void func(void);
... ...
public: private:
void func(void); int x, y;
... ...
}; };
以数据为中心 以行为为中心
择优选择