程序的版式比喻为“书法”。好的“书法”可让人对程序一目了然,看得兴
致勃勃。差的程序“书法”如螃蟹爬行,让人看得索然无味,更令维护者烦恼有加。
虽然有的编译器已经可以自动化排版,但是有些仍需要自己排版,因此可以使用一些技巧。
1.空行
1.在每个类声明之后、每个函数定义结束之后都要加空行,比如:
2.在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应 加空行分隔
2. 代码行
1.一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样 的代码容易阅读,并且方便于写注释。
2.
if
、
for
、
while
、
do
等语句自占一行,执行语句不得紧跟其后。不
执行语句有多少都要加
{}
。这样可以防止书写失误。
3.代码行内的空格
1.关键字之后要留空格。像 const、virtual、inline、case 等关键字之 后至少要留一个空格,否则无法辨析关键字。象 if、for、while 等关键字之后应留 一个空格再跟左括号‘(’,以突出关键字。
2.函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。
3.‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格。
4.‘,’之后要留空格,如
Function(x, y, z)
。如果‘
;
’不是一行的结束
符号,其后要留空格,如 for (initialization; condition; update)。
5.赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,
如“
=
”、“
+=
” “
>=
”、“
<=
”、“
+
”、“
*
”、“
%
”、“
&&
”、“
||
”、“
<<
”
,
“
^
”等二
元操作符的前后应当加空格。
6.一元操作符如“
!
”、“
~
”、“
++
”、“
--
”、“
&
”(地址运算符)等前后不
加空格。
7.象“[]”、“.”、“->”这类操作符前后不加空格。
建议:对于表达式比较长的
for
语句和
if
语句,为了紧凑起见可以适当地去
掉一些空格,如 for (i=0; i<10; i++)和
if ((a<=b) && (c<=d))
4.对齐
1.程序的分界符‘
{
’和‘
}
’应独占一行并且位于同一列,同时与引用
它们的语句左对齐。
2.{ }
之内的代码块在‘
{
’右边数格处左对齐。
5.修饰符的位置
修饰符 *
和 & 应该靠近数据类型还是该靠近变量名,是个有争议的活题。
若将修饰符 * 靠近数据类型,例如:int* x; 从语义上讲此写法比较直观,即 x
是 int 类型的指针。