编程语言风格概述(中)

来源:互联网 发布:淘宝女装店铺排行榜 编辑:程序博客网 时间:2024/05/20 14:15


四、对齐

   代码的合理对齐能够使得代码更加清晰易读,在调试时能够更容易发现错误。

  1. C语言的风格是程序的分界符‘{’‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

  2. Java的风格是程序的分界符左右大括号‘{’‘}’不必左对齐,而是

    public static void main(String[] args){

    …….

    …….

    }

  3. {}之内的代码块在‘{’右边一Tab缩进处左对齐。应注意,代码的缩进都应作用Tab键缩进,而不能使用空格键缩进。

     

        示例2-4aC语言风格的对齐,示例2-4bJava风格的对齐。

     

 

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.代码行最大长度宜控制在7080个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。

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、编程时应该尽量屏蔽掉前自增(减)和后自增(减)的区别;

   2i++ ++i应该单独成一个语句,不要把它作为一个完整复合语句的一部分来使用。

如:int m = i++ + ++i + i + i++; //这样写不但是不规范的代码,而且是不可移植的代码

printf("%d %d %d", i++, ++i,i); //这样写不但是不规范的代码,而且是不可移植的代码

   即在 int m = i++ + ++i + i + i++;中,i的值是否增加,在i++++i中是否已经改变是不清楚的。

在涉及到表达式优先级问题时,应用括号使运算顺序清楚,而不要只使用其运算符自身的优先级,毕竟运算符优先级不是有很多人去记很清楚的,即使能记清楚这样的代码看起来也比较费力。



六、命名规则


   变量及函数的命名有多种方式,不同的系统其命名方式也不尽相同。


变量及函数的命名应尽量简洁,能够表达其意思即可。


  1. 匈牙利命名法:在变量和函数名中加入前缀以增进人们对程序的理解。

    char类型变量前要加前缀chint类型变量前加i等。

    int ii, ij,ik; // 前缀 i表示int类型

    float fx, fy,fz; // 前缀 f表示float类型

    这样的繁琐命名方式会让绝大多数程序员无法忍受。

     

        2、驼峰命名法:大小写混排方式,每个字母首字母大写Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。命名规则尽量与所采用的操作系统或开发工具的风格保持一致。不要把这两类风格混在一起用。

     

        此处推荐驼峰命名法,类名首字母大写;函数名应采用动宾结构形式,如addChild,动词首字母应小写;变量名应统一采用小写;常量、宏定义名及自定义名(如typedef定义)为与变量区别,应统一采用大写。

     

    注意:


  1. 程序中不要出现仅靠大小写区分的相似的标识符。

        例如:

        int x, X;  // 变量x X容易混淆

  2. 程序中不要出现变量名完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。



1 0
原创粉丝点击