zoukankan      html  css  js  c++  java
  • 代码规范(五)

    6.1 代码编写规范
    6.1.1 缩进
    缩进应该是每行4个空格,在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度.

    如果你使用 UltrEdit 作为你的 Java 源代码编辑器的话,你可以通过如下操作来禁止保存Tab字符, 方法是通过 UltrEdit中先设定 Tab 使用的长度室4个空格,然后用 Format|Tabs to Spaces 菜单将 Tab 转换为空格。

    case语句下的情况处理语句也要遵从语句缩进要求。

    6.1.2 页宽
    页宽应该设置为80字符. 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进4个字符。

    示例:

    permCountMsg.Head.Len  =  NO7_TO_STAT_PERM_COUNT_LEN

    +  STAT_SIZE_PER_FRAM * sizeof( _UL );

    actTaskTable[FrameID * STAT_TASK_CHECK_NUMBER + index].Occupied

    = statPole[index].occupied;

    6.1.3 空行
    相对独立的程序块之间、变量说明之后必须加空行。

    示例:如下例子不符合规范。

    复制代码
     1 if ( !validNill(nill))
     2 {
     3    ... // program code
     4 }
     5  
     6 repssnInd = sendData[index].repssn_index;
     7 repssnNill  = sendData[index].nill;
     8 应如下书写
     9 if (!validNill(nill))
    10 {
    11     ... // program code
    12 }
    13 repssnInd = sendData[index].repssn_index;
    14 repssnNill  = sendData[index].nill;
    复制代码

    6.1.4 空格的使用
    在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。

    说明:采用这种松散方式编写代码的目的是使代码更加清晰。

    左括号和后一个字符之间不应该出现空格, 同样, 右括号和前一个字符之间也不应该出现空格. 下面的例子说明括号和空格的错误及正确使用:

    CallProc( AParameter ); // 错误

    CallProc(AParameter); // 正确

    6.1.5 {}的用法
    程序块的分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。

    示例:如下例子不符合规范。

    复制代码
     1 for (...) {
     2     ... // program code
     3 }
     4 if (...)
     5     {
     6     ... // program code
     7     }
     8 void exampleFunction( void )
     9     {
    10     ... // program code
    11     }
    复制代码

    应如下书写。

    复制代码
     1 for (...)
     2 {
     3     ... // program code
     4 }
     5 if (...)
     6 {
     7     ... // program code
     8 }
     9 void exampleFunction( void )
    10 {
    11     ... // program code
    12 }
    复制代码

    6.1.6 if等语句写法
    if、for、do、while、case、switch、default、try、catch等语句自占一行,“{”必须回行编写,且if、for、do、while等语句的执行语句部分必须用{}括起回行编写,若有执行语句只有一条,{}可缺省。

    示例:如下例子不符合规范。

    if (pUserCR == NULL) return;

    应如下书写:

    if (pUserCR == NULL)

    {

        return;

    }

    6.1.7 循环、判断等语句
    循环、判断等语句中若有较长的表达式或语句,则要进行适当的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

    示例:

    复制代码
     1 if ((taskNo < maxActTaskNumber) && (timeNo < minActTimeNumber)
     2 && (n7StatItemValid(statItem)))
     3 {
     4    ... // program code
     5 }
     6 for (i = 0, j = 0; (i < bufferKeyword[WordIndex].word_length)
     7 && (j < newKeyword.word_length); i++, j++)
     8 {
     9     ... // program code
    10 }
    11 for (i = 0, j = 0; 
    12 (i < firstWordLength) && (j < secondWordLength); 
    13 i++, j++)
    14 {
    15     ... // program code
    16 }
    复制代码

    6.1.8 参数划分
    若方法中的参数较长,则要进行适当的划分。

    示例:

    1 n7StatStrCompare((BYTE *) & statObject,
    2                 (BYTE *) & (actTaskTable[taskno].statObject),
    3                 sizeof (_STAT_OBJECT));
    4 n7StatFlashActDuration( statItem, frameID *STAT_TASK_CHECK_NUMBER
    5 + index, statObject );

    6.1.9 一行只写一条语句
    不允许把多个短语句写在一行中,即一行只写一条语句。

    示例:如下例子不符合规范。

    rect.length = 0;  rect.width = 0;

    应如下书写

    rect.length = 0;

    rect.width  = 0;

    6.2 变量编写规范
    6.2.1 公共变量
    6.2.1.1 去掉没必要的公共变量。
    说明:公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度。

    6.2.1.2 仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。
    说明:在对变量声明的同时,应对其含义、作用及取值范围进行注释说明,同时若有必要还应说明与其它变量的关系。

    6.2.1.3 当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。
    说明:对公共变量赋值时,若有必要应进行合法性检查,以提高代码的可靠性、稳定性。

    6.2.2 局部变量
    6.2.2.1 防止局部变量与公共变量同名。
    说明:若使用了较好的命名规则,那么此问题可自动消除。

  • 相关阅读:
    上传文件过大的问题FileUploadBase$SizeLimitExceededException
    Oracle分页2
    详解struts2中struts.properties
    Oracle 分页
    Xcode常见错误以及解决方案
    设置时间格式
    UIScrollView解决touchesBegan等方法不能触发的解方案
    ViewController 之间设置转场动画
    IQKeyboredManager使用
    SVN
  • 原文地址:https://www.cnblogs.com/9635741zly/p/14916486.html
Copyright © 2011-2022 走看看