一个清晰,美观的程序板式是一个程序员应具备的最基本的素质,好的板式可以让人一目了然,
兴致勃勃,所以,学习一个好的程序板式很有必要!
1.空行
空行起着分隔程序段落的作用。空行得体,将使程序的布局更加清晰。空行不会浪费内存,所以不要舍不得用空行。
规则1.1:在每个类申明之后,每个函数定义结束之后都要加空行。
例子:
//空行
int get_max()
{
}
//空行
void Function()
{
}
//空行
void swap()
{
}
规则1.2:在一个函数体内,逻辑上密切相关的语句之间不加空行 ,其他地方应加空行分隔。
例子;
while (condition)
{
statement1;
//空行
if (condition)
{
statement2;
}
else
{
statement3;
}
//空行
statement4;
}
2.代码行
规则2.1:一行代码只做一件事,只定义一个变量,或只写一条语句,这样的代码更容易阅读
例子:
//
int a = 0;
int b = 0;
int c = 0;
//
a = b + c;
c = a + b;
规则2.2:if,for,while,do等语句自占一行,执行语句不得紧跟其后,不论执行语句多少都要加{}。这样可以防止书写失误。
例子:
if (a > b)
{
dosomething();
}
for (a = 0; a < b; a++)
{
dosomething();
}
建议:尽量能在定义变量的同时初始化该变量。
例如:
int a = 0;//定义并初始化a
int b = 0;
int c = 0;
3. 代码行内的空格
规则3.1:关键字之后要留空格。例如const,virtual,inline,case等关键字后至少要留一个空格,否则无法辨析关键字。
规则3.2:函数名之后不要留空格,紧跟‘(’,以与关键字区别。
void Func1(int x, int y, int z) //风格良好的代码
void Func1 (intx, inty, intz) //不良的风格
规则3.3:‘(’向后紧跟,‘)’, ‘,’ ‘;’ 向前紧跟,紧跟处不留空格。
规则3.4:‘,’之后要留空格,如果‘;’不是一行结束的符号,其后也要留空格。
例子:
for (i = 0; i < 10; i++) //良好的风格
for(i=0;i<10;i++) //不良的风格
for(i = 0; i < 10; i ++) //过多空格
规则3.5:赋值操作符,比较操作符,算术操作符,逻辑操作符,位域操作符,等二元操作符的前后应该加空格。
例子:
if (year >= 2000) //良好的风格
if(year>=2000) //不良的风格
if ((a >= b) && (c <= d)) //良好的风格
if(a>=b&&c<=d) //不良的风格
规则3.6:一元操作符前后不用加空格
例子:
a.Function(); //不要写成a . Function();
b->Function(); //不要写成b -> Function();
规则3.7:
像‘[]’,‘.’,‘->’,这类操作符前后不加空格。
建议:对于表达式比较长的for语句和if语句,为了紧凑起见可以适当去掉一些空格。
4.对齐
规则4.1:程序的分界‘{’和‘}’应独占一行并且位于同一列,左对齐
例子:
void Function()
{
//风格良好
}
void Function() {
//风格不良
}
规则4.2:{}之内的代码在‘{’右边数格处左对齐。
5.长行拆分
规则5.1:代码行最大长度宜控制在70至80个字符之内。代码行不要过长,否则眼睛看不过来,也不便于打印。
规则5.2:长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首。拆分处的新行要进行适当的缩进,使排版整齐,语句可读。
例子:
if ((very_long_variable1 >= very_long_variable12)
&& (very_long_variable3 <= very_long_variable14)
&& (very_long_variable5 <= very_long_variable16))
{
dosimething();
}
6.修饰符的位置
修饰符 * 和 & 应该靠近数据类型还是变量名,是一个有争议的话题。
若将修饰符 * 靠近数据类型,例如:int* x;从语义上讲此写法比较直观,x是int类型的指针。
上述写法的弊端是容易引起误解,例如:int* x,y;此处y容易被误解位指针变量。
规则6.1:应当将修饰符 * 和 & 紧靠变量名
7.注释
c语言注释符为“/*...*/”。c++语言中,程序块的注释常采用“/*...*/”,行注释一般采用“//...”。注释常用于:
(1)版本版权申明;
(2)函数接口说明;
(3)重要的代码行或段落提示
虽然注释有助于理解代码,但注意不可过多使用。
规则7.1:注释是对代码的提示,而不是文档。程序中的注释不可喧宾夺主,注释太多会让人眼花缭乱。花样要少。
规则7.2:如果代码本来就是清楚地,则不必加注释,否则多此一举。
规则7.3:边写代码边注释,修改代码的同时修改相应的注释,以保证注释与代码的一致性。
规则7.4:注释应当准确,易懂,防止注释有二义性。
规则7.5:计量避免注释时适用缩写,特别是不常用的缩写。
规则7.6:注释的位置应与被描述的代码相邻,不可放在代码下方。
规则7.7:当代吗比较长,特别是用多重嵌套,应到在一些段落的结束处加注释,便于阅读。
8.类的板式
c++之后补充。