天天看點

算法第一章作業

華為代碼規範

一、排版

1、程式塊采用縮進風格編寫,縮進空格數為4個

2、相對獨立的程式塊之間、變量說明之間必須加空行

如:if(!valid_ni(ni))

{..

}

//此處空行必須加

Repssn_ind = ssn_data[index].ni;

Repssn_ind = ssn_data[index].repssn_index;

3、大于80字元的語句或者循環、判斷等語句中有較長表達式或語句要分多行書寫,長表達是要在低優先級操作符處劃分新行,操作符要放在新行之首,劃分出的新行要進行适當的縮進,使排版整齊,語句可讀

如:

(1)Per_count_msg.head.len = No7_To_STAT_PERM_COUNT_LEN

                        + STAT_SIZE_PER_FRA*sizeof(_UL);

(2)if((tasko < max_axt_task_number)

        &&(n7stat_stat_item_valid(stat_item)))

     {

       .....

     }

4、不允許把多個短語句寫在同一行

  int x = 0; double y = 9;//不規範

5、if、for等判斷或循環語句自占一行,同時一定要加括号{}

 不規範:if(x==0) return;

 規範:  if(x == 0)

         {

            return;

         }

6、對齊隻使用空格鍵,不适用TAB鍵,防止閱讀器器不同,程式布局不整齊

7、程式塊的分界符(如c/c++語言中的大括号 “{}”應獨占一行而且位于同一列,同時與引用語句左對齊

不規範:

(1)for(...){

             }

(2)for(...)

      {

         ....

      }

規範:

for(...)

{

.....

8、關于空格:

(1)逗号分号隻在後面加空格

     int a, b, c;

(2)比較運算符,指派操作符”=”、”+=”,算術操作符”+”、”%”,邏輯操作符”&&”、”&”,位運算符”<<”、”^”等雙目運算符前後加空格,如:

for(a >= 0)

   A = C + D;

   A *= 2;

}  

(3)”!”、”~”、”++”、”--”等單目運算符和”->”、”.”前後不加空格

  P = ‘a’;

  ++i;

  K->id = pid;

二、注釋

1、源代碼有效注釋量在百分之二十以上,不宜過少也不要過多,注釋統一格式,使用”/*....*/

2、函數頭部應進行注釋,列出:函數的目的/功能、輸入參數、輸出參數、傳回值、調用關系,如下執行個體:

/*

Function:   //函數名稱

Description: //函數功能、性能等的描述

Calls:      //被本函數調用的函數清單

Called By:   //調用本函數的函數清單

Table Accessed: //被通路的表(此項僅對于牽扯到資料庫操作的程式)

Table Updated: ///被修改的表(此項僅對于牽扯到資料庫操作的程式)

Input: //輸入參數說明,包括每個參數的作用、取值說明及參數間關系。

Output://對輸出參數的說明。

Return://函數傳回值的說明

Others://其它說明

*/

3、注釋的内容要清楚、明了,含義準确,防止注釋二義性。

4、避免在注釋中使用縮寫,特别是非常用縮寫。

5、注釋應與其描述的代碼相近,對代碼的注釋應放在其上方或右方(對單條語句的注釋)

相鄰位置,不可放在下面,如放于上方則需與其上面的代碼用空行隔開。

示例:如下例子不符合規範。

例1:/* get replicate sub system index and net indicator */

repssn_ind = ssn_data [index] .repssn_index;

repssn_ni =ssn_data [index] .ni;

6、資料結構聲明(包括數組、結構、類、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對資料結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域的注釋放在此域的右方。

7、全局變量要有較詳細的注釋,包括對其功能、取值範圍、哪些函數或過程存取它以及

存取時注意事項等的說明。

三、辨別符命名

1、辨別符命名要清晰、明了,有明确含義,同時使用完整單詞或大家可了解的縮寫

2、命名若使用特殊約定或縮寫,需注釋說明

3、命名有自己的風格,且不要來回變化

4、除特殊應用,避免以下劃線結束的命名

四、函數及過程

1、函數規模盡量在200行内,不包括注釋

2、一個函數僅完成一個功能

3、為簡單函數編寫代碼

如:value = (a > b) ? a : b;

  改為

int max (int a ,int b)

   return ((a > b) ? a: b))

4、避免設計多參數函數

5、函數名能準确描述函數的功能

6、防止将無關聯的語句放在一個函數

例:不規範

void Init_Var()

  Rect.length = 0;

  Rect.width = 0;//初始化矩形長和寬

  Point.x = 0;

  Point.y = 10;//初始化點的橫縱坐标;

繼續閱讀