四、对齐
代码的合理对齐能够使得代码更加清晰易读,在调试时能够更容易发现错误。
- C语言的风格是程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。
- Java的风格是程序的分界符左右大括号‘{’‘}’不必左对齐,而是
public static void main(String[] args){
…….
…….
}
- {}之内的代码块在‘{’右边一Tab缩进处左对齐。应注意,代码的缩进都应作用Tab键缩进,而不能使用空格键缩进。
示例2-4(a)C语言风格的对齐,示例2-4(b)Java风格的对齐。
void Function(int x) { … // program code } |
void Function(int x){ … // program code } |
if (condition) { … // program code } else { … // program code } |
if (condition){ … // program code } else { … // program code } |
for (initialization; condition; update) { … // program code } |
for (initialization; condition; update){ … // program code } |
While (condition) { … // program code } |
while (condition){ … // program code } |
如果出现嵌套的{},则使用缩进对齐,如: { … { … } … } |
示例2-4(a) C语言风格的对齐 示例2-4(b) Java风格的对齐
3.长行拆分
1.代码行最大长度宜控制在70至80个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。
2.长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
示例2-5长行的拆分
if ((very_longer_variable1 >= very_longer_variable12) && (very_longer_variable3 <= very_longer_variable14) && (very_longer_variable5 <= very_longer_variable16)) { dosomething(); } |
virtual CMatrix CMultiplyMatrix (CMatrix leftMatrix, CMatrix rightMatrix); |
for (very_longer_initialization; very_longer_condition; very_longer_update) { dosomething(); } |
3.修饰符*和&的位置
1.修饰符*和&的位置比较有争议,如果位置恰当,可能会引起误解。*及&运算符应该紧靠变量,因为这两个运算符的优先级比较高。
2.而在定义变量时,如:int * p;
此处推荐大家在*运算符前后各加一空格,就不会引起误解。
如在定义int * p, q;此处的p为指类型变量,而q是整型变量。
五、括号的使用及自增运算符
自增运算符包括前后自增运算符、前后自减运算符。
1、编程时应该尽量屏蔽掉前自增(减)和后自增(减)的区别;
2、i++和 ++i
应该单独成一个语句,不要把它作为一个完整复合语句的一部分来使用。
如:int m = i++ + ++i + i + i++; //这样写不但是不规范的代码,而且是不可移植的代码
或 printf("%d %d %d", i++, ++i,i); //这样写不但是不规范的代码,而且是不可移植的代码
即在 int m = i++ + ++i + i + i++;中,i的值是否增加,在i++与++i中是否已经改变是不清楚的。
在涉及到表达式优先级问题时,应用括号使运算顺序清楚,而不要只使用其运算符自身的优先级,毕竟运算符优先级不是有很多人去记很清楚的,即使能记清楚这样的代码看起来也比较费力。
六、命名规则
变量及函数的命名有多种方式,不同的系统其命名方式也不尽相同。
变量及函数的命名应尽量简洁,能够表达其意思即可。
- 匈牙利命名法:在变量和函数名中加入前缀以增进人们对程序的理解。
如char类型变量前要加前缀ch,int类型变量前加i等。
int ii, ij,ik; //
前缀 i表示int类型float fx, fy,fz; //
前缀 f表示float类型这样的繁琐命名方式会让绝大多数程序员无法忍受。
2、驼峰命名法:大小写混排方式,每个字母首字母大写Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。命名规则尽量与所采用的操作系统或开发工具的风格保持一致。不要把这两类风格混在一起用。
此处推荐驼峰命名法,类名首字母大写;函数名应采用动宾结构形式,如addChild,动词首字母应小写;变量名应统一采用小写;常量、宏定义名及自定义名(如typedef定义)为与变量区别,应统一采用大写。
注意:
- 程序中不要出现仅靠大小写区分的相似的标识符。
例如:
int
x, X; // 变量x与 X
容易混淆 - 程序中不要出现变量名完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。
版权声明:本文为博主原创文章,未经博主允许不得转载。