提前认识软件开拓(9) C语言中的大括号
当前位置:以往代写 > C/C++ 教程 >提前认识软件开拓(9) C语言中的大括号
2019-06-13

提前认识软件开拓(9) C语言中的大括号

提前认识软件开拓(9) C语言中的大括号

副标题#e#

在C语言中,大括号“{}”是一类较量非凡的标记。假如可以或许在适当的处所操作它,可使代码看起来很是的整洁,也可以或许从侧面浮现出一个编程人员的专业涵养。

那么,在C语言中,大括号应该用在哪些处所呢?

1.初始化数组变量

在实际的软件开拓项目中,变量在利用前应初始化,防备未经初始化的变量被引用。

对付数组变量来说,得当的初始化样譬喻下:

char szString[100] = {0};

界说了一个名为szString的包括100个字节的数组变量,并将该数组中每个变量的初始值赋为0。

2. 界说和初始化布局体变量

布局体变量的界说要领的样譬喻下:

typedef struct

{

   ……

}T_Struct;

该布局体变量的初始化样譬喻下:

T_Struct tStruct = {0};

许多开拓人员都不注重对布局体变量举办初始化,这是差池的。要紧记的是,任何变量在利用前,都应举办初始化。

3. 用在if、else、else if、for、while、do等语句中

在实际的软件开拓项目中,if、else、else if、for、while、do等语句用得较多,对这些语句的书写要求如下:

(1)自占一行,执行语句不得紧跟其后。岂论执行语句有几多都要加“{ }”。

这样做的目标是便于阅读,同时也有利于代码的维护。

假设界说了两个整型变量iIntVal1和iIntVal2,假如iIntVal1的值小于iIntVa2,那么就将iIntVal2的值赋给iIntVal1,则正反示例为:

反例:

if (iIntVal1 < iIntVal2) iIntVal1 = iIntVal2;

这样写出来的措施可读性很差,倒霉于对流程的跟踪及对版本的维护。

正例:

if (iIntVal1 < iIntVal2)

{

  iIntVal1 = iIntVal2;

}

该代码和反例中的代码对比,简捷清晰,让人一目了然。

(2)措施的分界符“{”和“}”应独有一行而且位于同一列,同时与引用它们的语句左对齐。“{ }”之内的代码块利用缩进法则对齐(一般缩进4个空格)。

同样以两个整型变量iIntVal1和iIntVal2的较量来说明,正譬喻上面(1)所示。

反例:

if (iIntVal1 < iIntVal2)

   {

iIntVal1 = iIntVal2;

}

该代码看起来给人一种很缭乱的感受,未便于阅读和维护。

4. 用在switch语句中

switch语句也常常呈此刻产物代码中,要想写出逻辑清晰、可阅读性强的switch语句,需要遵循以下法则:

(1)必然要加上default分支,纵然case分支已经将全部环境都包罗了。

这样做是为了防备其它代码阅读者误觉得漏写了default分支,也可表示出开拓人员的思维的全面性。


#p#副标题#e#

(2)一个case分支和default分支要用“{ }”括起来,“{ }”中的内容需要缩进(一般缩进4个空格)。

这样做可使措施逻辑清晰,可读性更好。

假设界说了一个整型变量iSwitchFlag,可取值1、2、3,用switch语句对每种可取值的环境别离举办处理惩罚,则正反示例为:

反例:

switch (iSwitchFlag)
    
{                   //“{”没有和switch对齐
    
case 1:              //“case”没有缩进
    
{                  //“{”没有和case对齐
    
           DoSomething1();   //缩进空格数太多
    
break;
    
}               //“}”没有和本case语句的“{”对齐
    
     
    
    case 2:
    
    {                                        
    
     DoSomething2(); 
    
              break;
    
    }
    
     
    
    case 3:
    
       DoSomething3();  //没有用“{}”将语句括起来,且case执行竣事后无break;
    
     
    
  //缺少了default分支
    
}

以上反例中的switch语句可读性很差,倒霉于代码的维护。

正例:

switch (iSwitchFlag)
    
{
    
    case 1:
    
    {
    
        DoSomething1();    //缩进4个空格
    
       break;
    
    }
    
     
    
    case 2:
    
    {                                        
    
        DoSomething2();  //缩进4个空格
    
        break;
    
    }
    
     
    
    case 3:
    
    {                                        
    
        DoSomething3();  //缩进4个空格
    
        break;
    
    }
    
     
    
    default:             //必然要有default分支
    
    {
    
        DoNothing();
    
        break;
    
     }
    
}

正例中的代码逻辑清晰,有利于代码的修改和维护。

#p#副标题#e#

(3) break语句要写到“{}”的内里,这样可以浮现出措施块的整体性,便于阅读。

如下的代码是不类型的:

switch (iSwitchFlag)
    
{
    
case 1:
    
{
    
        DoSomething1();
    
}
    
break;        // break语句放到了“{}”外面,不类型
    
     
    
    case 2:
    
    {                                        
    
        DoSomething2(); 
    
    }
    
    break;
    
     
    
    case 3:
    
    {                                        
    
        DoSomething3();
    
    }
    
    break;
    
     
    
    default:           
    
    {
    
        DoNothing();
    
    }
    
   break;
    
}

5. 用在函数中

众所周知,一个函数中的所有语句是包罗在“{}”之中的。除此之外,“{}”在函数之中尚有其它用武之地。

(1)脱离成果关联不大的语句块

#p#分页标题#e#

在某些函数中,大概包括了许多成果,但这些成果之间的关联性很小,可以看成独立的代码来看待。这时,可以用“{}”将这些差异成果的代码块区分隔来,加强代码的可读性,也便于对函数的维护和修改。

假设有一个函数ExampleFun,包括了三个较为独立的成果A、B和C,则可以如下组织该函数的代码。

void ExampleFun(void)
    
{
    
    //成果A代码块开始
    
    {
    
          //成果A的实现代码
    
    }
    
   //成果A代码块竣事
    
     
    
     //成果B代码块开始
    
    {
    
          //成果B的实现代码
    
    }
    
    //成果B代码块竣事
    
     
    
    //成果C代码块开始
    
    {
    
       //成果C的实现代码
    
    }
    
       //成果C代码块竣事
    
}

这样的代码具有自说明性,便于阅读和维护,提高了事情效率。

(2)突出添加或修改的代码

在代码行数较多的函数中,假如要添加或修改的代码量很少,即与原本已有的代码比起来,显得“很眇小”。这时,可以用“{}”将添加或修改的代码括起来,以突出代码的窜改,利便阅读及对代码举办走查等。

同样以函数ExampleFun为例来说明,如下所示:

void ExampleFun(void)
    
{
    
    ……
    
    ……
    
    ……
    
    ……
    
    ……
    
    //修改或添加代码块开始
    
    {
    
         //修改或添加的代码
    
    }
    
   //修改或添加代码块竣事
    
   ……
    
   ……
    
    ……
    
   ……
    
    ……
    
}

这样,很容易发明代码的窜改,阅读或维护起来也较量的容易。

总的说来,善于在代码中运用“{}”,可以提高代码的类型性,进而提高代码质量及事情的效率。

代码的类型性是一个永恒的话题,宽大的软件开拓工程师在提高本身编程程度的同时,也要注重编程类型,让本身的代码更易于阅读和维护。

From:csdn博客 周兆熊

    关键字:

在线提交作业