規則:
1:壹般情況下,源程序的有效註釋量必須在20%以上。
註意:註釋的原則是幫助程序的閱讀和理解,需要的地方要加上。註釋不能太多,也不能太少,註釋語言必須準確、易懂、簡潔。
2.描述性文件(如頭文件。h文件,。inc文件,。def文件,編譯描述文件。cfg等。)應在頭部標註,標註必須列出:版權描述、版本號、生成日期、作者、內容、功能、與其他文件的關系、修改日誌等。頭文件的註釋還應該包括對函數的簡要描述。
例子:下面這個頭文件的頭註釋比較標準。當然,它們並不局限於這種格式,但建議將上述信息包括在內。
/*************************************************
版權所有(C),1988-1999,技術。有限公司
文件名://文件名
作者:
版本:
日期://作者、版本和完成日期
說明://用於詳細說明本程序文件完成的主要功能,區別於其他模塊。
//功能接口,控制輸出值、值範圍、含義和參數
//系統、順序、獨立或依賴等。
其他://其他內容描述
功能列表://主要功能列表。每個記錄都應該包括函數名和函數的簡要描述。
1.....
歷史://修改歷史列表。每份修改記錄應包括修改日期和修改人。
//作者簡介及修改內容
1.日期:
作者:
修改:
2....
*************************************************/
3.源文件的頭要有註釋,列出:版權描述、版本號、生成日期、作者、模塊用途/功能、主要功能及其作用、修改日誌等。
例子:下面這些源文件的頭註釋比較標準。當然,它們並不局限於這種格式,但建議將上述信息包括在內。
/************************************************************
版權所有(C),1988-1999,技術。有限公司
文件名:test.cpp
作者:
版本:
日期:
描述://模塊描述
版本://版本信息
功能列表://主要功能及其功能
1.-
歷史://歷史修改記錄
& lt作者& gt& lt時間& gt& lt版本& gt& ltdesc & gt;
大衛建造這個模型
***********************************************************/
描述:描述描述了本文檔的內容和功能、內部各部分之間的關系以及本文檔與其他文檔之間的關系。歷史是修改歷史記錄的列表,每條修改記錄應包括修改日期、修改人和修改內容的簡要描述。
4.函數頭要有註釋,列出:函數的用途/功能、輸入參數、輸出參數、返回值、調用關系(函數、表)等。
例子:下面這個函數的註釋比較標準。當然,它們並不局限於這種格式,但建議將上述信息包括在內。
/*************************************************
函數://函數名
描述://功能、性能等的描述。
Calls: //此函數調用的函數列表
調用方://調用此函數的函數列表
已訪問的表://已訪問的表(此項僅用於數據庫操作中涉及的程序)
Table Updated: // Modified table(此項僅用於數據庫操作中涉及的程序)
輸入://輸入參數描述,包括每個參數的功能。
//說明用法和值,以及參數之間的關系。
Output: //輸出參數的描述。
Return: //函數返回值的描述。
其他://其他說明
*************************************************/
5.邊寫代碼邊註釋,修改代碼和對應的註釋,保證註釋和代碼的壹致性。不再有用的評論應該被刪除。
6.筆記的內容要清晰明了,意思要準確,防止筆記的歧義。
註意:錯誤的註釋不僅無用,而且有害。
7.避免在註釋中使用縮寫,尤其是那些不常用的。
說明:使用縮寫或之前,應對縮寫進行必要的說明。
8.註釋應該靠近它們描述的代碼,對代碼的註釋應該放在靠近頂部或右邊(對單個句子的註釋),而不是下面。如果它們放在上面,應該用空行與上面的代碼隔開。
示例:以下示例不符合規格。
示例1:
/*獲取復制子系統指標和凈指標*/
repssn_ind = ssn_data[index]。repssn _ index
repssn_ni = ssn_data[index]。倪;
示例2:
repssn_ind = ssn_data[index]。repssn _ index
repssn_ni = ssn_data[index]。倪;
/*獲取復制子系統指標和凈指標*/
應該這樣寫
/*獲取復制子系統指標和凈指標*/
repssn_ind = ssn_data[index]。repssn _ index
repssn_ni = ssn_data[index]。倪;
9:對於所有有物理意義的變量和常數,如果它們的名字不是完全自解釋的,那麽在聲明它們的物理意義時必須加以註釋。變量、常量和宏的註釋應該放在上面或右邊。
示例:
/*活動統計任務數*/
#定義MAX_ACT_TASK_NUMBER 1000
# define MAX _ ACT _ TASK _ NUMBER 1000/*活動統計任務數*/
10:數據結構聲明(包括數組、結構、類、枚舉等。)如果它們的名字不是完全不言自明的,就必須加以註釋。對數據結構的註釋應該放在它的上面,而不是下面;結構中每個字段的註釋都放在該字段的右側。
示例:枚舉/數據/聯合結構可以用以下形式描述。
/*帶有sccp用戶基本消息名稱的sccp接口*/
枚舉SCCP _用戶_原語
{
N_UNITDATA_IND,/* sccp通知sccp用戶單元數據到來*/
N_NOTICE_IND,/* sccp通知用戶七號網不能*/
/*發送此消息*/
N_UNITDATA_REQ,/* sccp用戶單元數據傳輸請求*/
};
11:全局變量要詳細註明,包括它的作用,取值範圍,哪些函數或過程訪問它,訪問時的註意事項。
示例:
/* SCCP翻譯時的錯誤代碼*/
/*全局標題失敗,如下*///變量的作用和意義
/* 0 -成功1 - GT表錯誤*/
/* 2-gt error others-no use *///變量值範圍
/*僅*/中的SCCPTranslate()函數
/*此模塊可以修改它,其他*/
/*模塊可以通過調用訪問它*/
/*函數getgttranserrocode()*//如何使用它
字節g _ GTTranErrorCode
12:註釋按照描述縮進。
註:可以使程序排版整齊,方便註釋的閱讀和理解。
舉例:下面這個例子,排版不工整,讀起來有點不方便。
void示例_fun( void)
{
/*代碼壹註釋*/
代碼塊壹
/*代碼兩個註釋*/
代碼塊二
}
它應該更改為以下布局。
void示例_fun( void)
{
/*代碼壹註釋*/
代碼塊壹
/*代碼兩個註釋*/
代碼塊二
}
13:用壹個空行將註釋和它上面的代碼分開。
示例:下面的示例顯示代碼過於緊湊。
/*代碼壹註釋*/
程序代碼壹
/*代碼兩個註釋*/
程序代碼二
應該這樣寫
/*代碼壹註釋*/
程序代碼壹
/*代碼兩個註釋*/
程序代碼二
14:變量和分支語句(條件分支、循環語句等)的定義壹定要寫註釋。).
註意:這些語句通常是程序特定功能的關鍵。對於維護人員來說,好的註釋有助於更好地理解程序,有時甚至比閱讀設計文檔更好。
15:對於switch語句下的case語句,如果由於特殊情況需要先處理壹個case再進行下壹個case,則在處理case語句和下壹個case語句之前,必須添加明確的註釋。
註意:這樣可以讓程序員的意圖更加清晰,有效防止break語句被無故省略。
示例(註意粗體斜體):
案例CMD_UP:
ProcessUp();
打破;
案例CMD_DOWN:
process down();
打破;
案例CMD_FWD:
process FWD();
如果(...)
{
...
打破;
}
其他
{
process cfw _ B();//現在跳轉到案例CMD_A
}
案例CMD_A:
ProcessA();
打破;
案例CMD_B:
ProcessB();
打破;
案例CMD_C:
ProcessC();
打破;
案例CMD_D:
ProcessD();
打破;
...
建議:
1:避免在壹行代碼或表達式中間插入註釋。
註意:除非必要,否則不要在代碼或表達式中間插入註釋,否則很容易使代碼變得難以理解。
2.通過正確命名函數或過程、變量和結構,合理組織代碼的結構,代碼就變得不言自明了。
註意:函數和變量清晰準確的命名可以增加代碼的可讀性,減少不必要的註釋。
3.在功能和意圖的層次上註釋代碼,以提供有用的和附加的信息。
註:註釋的目的是解釋代碼的目的、功能和方法,提供代碼以外的信息,幫助讀者理解代碼,防止註釋信息不必要的重復。
例子:下面的評論意義不大。
/*如果receive_flag為真*/
if(接收標誌)
以下註釋提供了額外的有用信息。
/*如果mtp收到來自鏈接的消息*/
if(接收標誌)
4.在塊的結束行右側添加註釋標記,以指示塊的結束。
註意:當代碼段很長,尤其是多重嵌套時,這樣可以讓代碼更清晰易讀。
示例:參見下面的示例。
如果(...)
{
//程序代碼
while(index & lt;MAX_INDEX)
{
//程序代碼
} /*結束while(index & lt;MAX _ INDEX)*////表示while語句的結束。
of if結束(...)*//指示哪個if語句結束。
5:評論的格式盡量統壹,建議使用“/*...*/".
6.註釋要考慮程序的可讀性和排版的外觀。如果使用的語言是中英文兩種語言,建議多使用中文,除非能用非常流利準確的英文表達。
註意:註釋語言不統壹,影響程序的可讀性和外觀排版。為維護人員著想,建議使用中文。