c語言函數(shù)說明注釋 c語言中注釋的例子

c語言如何注釋?

直接在該行需要注釋的地方加上"http://"即可。

和平網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

可以使用/*和*/分隔符來標注一行內(nèi)的注釋,也可以標注多行的注釋。例如,在下列的函數(shù)原型中,省略號的意思是 open() 函數(shù)有第三個參數(shù),它是可選參數(shù)。

注釋解釋了這個可選參數(shù)的用法:

int open( const char *name, int mode, … /* int permissions */ );

代碼具有較好的可移植性

C語言是面向過程的編程語言,用戶只需要關(guān)注所被解決問題的本身,而不需要花費過多的精力去了解相關(guān)硬件,且針對不同的硬件環(huán)境,在用C語言實現(xiàn)相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對于一臺計算機編寫的C程序可以在另一臺計算機上輕松地運行,從而極大的減少了程序移植的工作強度。

以上內(nèi)容參考:百度百科-C語言

C語言程序注釋

C語言編程規(guī)范-注釋

規(guī)則:

1:一般情況下,源程序有效注釋量必須在20%以上。

說明:注釋的原則是有助于對程序的閱讀理解,在該加的地方都加了,注釋不宜太多也不能太少,注釋語言必須準確、易懂、簡潔。

2:說明性文件(如頭文件.h文件、.inc文件、.def文件、編譯說明文件.cfg等)頭部應(yīng)進行注釋,注釋必須列出:版權(quán)說明、版本號、生成日期、作者、內(nèi)容、功能、與其它文件的關(guān)系、修改日志等,頭文件的注釋中還應(yīng)有函數(shù)功能簡要說明。

示例:下面這段頭文件的頭注釋比較標準,當然,并不局限于此格式,但上述信息建議要包含在內(nèi)。

/*************************************************

Copyright (C), 1988-1999, Tech. Co., Ltd.

File name: // 文件名

Author:

Version:

Date: // 作者、版本及完成日期

Description: // 用于詳細說明此程序文件完成的主要功能,與其他模塊

// 或函數(shù)的接口,輸出值、取值范圍、含義及參數(shù)間的控

// 制、順序、獨立或依賴等關(guān)系

Others: // 其它內(nèi)容的說明

Function List: // 主要函數(shù)列表,每條記錄應(yīng)包括函數(shù)名及功能簡要說明

1. ....

History: // 修改歷史記錄列表,每條修改記錄應(yīng)包括修改日期、修改

// 者及修改內(nèi)容簡述

1. Date:

Author:

Modification:

2. ...

*************************************************/

3:源文件頭部應(yīng)進行注釋,列出:版權(quán)說明、版本號、生成日期、作者、模塊目的/功能、主要函數(shù)及其功能、修改日志等。

示例:下面這段源文件的頭注釋比較標準,當然,并不局限于此格式,但上述信息建議要包含在內(nèi)。

/************************************************************

Copyright (C), 1988-1999, Tech. Co., Ltd.

FileName: test.cpp

Author:

Version :

Date:

Description: // 模塊描述

Version: // 版本信息

Function List: // 主要函數(shù)及其功能

1. -------

History: // 歷史修改記錄

author time version desc

David 96/10/12 1.0 build this moudle

***********************************************************/

說明:Description一項描述本文件的內(nèi)容、功能、內(nèi)部各部分之間的關(guān)系及本文件與其它文件關(guān)系等。History是修改歷史記錄列表,每條修改記錄應(yīng)包括修改日期、修改者及修改內(nèi)容簡述。

4:函數(shù)頭部應(yīng)進行注釋,列出:函數(shù)的目的/功能、輸入?yún)?shù)、輸出參數(shù)、返回值、調(diào)用關(guān)系(函數(shù)、表)等。

示例:下面這段函數(shù)的注釋比較標準,當然,并不局限于此格式,但上述信息建議要包含在內(nèi)。

/*************************************************

Function: // 函數(shù)名稱

Description: // 函數(shù)功能、性能等的描述

Calls: // 被本函數(shù)調(diào)用的函數(shù)清單

Called By: // 調(diào)用本函數(shù)的函數(shù)清單

Table Accessed: // 被訪問的表(此項僅對于牽扯到數(shù)據(jù)庫操作的程序)

Table Updated: // 被修改的表(此項僅對于牽扯到數(shù)據(jù)庫操作的程序)

Input: // 輸入?yún)?shù)說明,包括每個參數(shù)的作

// 用、取值說明及參數(shù)間關(guān)系。

Output: // 對輸出參數(shù)的說明。

Return: // 函數(shù)返回值的說明

Others: // 其它說明

*************************************************/

5:邊寫代碼邊注釋,修改代碼同時修改相應(yīng)的注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除。

6:注釋的內(nèi)容要清楚、明了,含義準確,防止注釋二義性。

說明:錯誤的注釋不但無益反而有害。

7:避免在注釋中使用縮寫,特別是非常用縮寫。

說明:在使用縮寫時或之前,應(yīng)對縮寫進行必要的說明。

8:注釋應(yīng)與其描述的代碼相近,對代碼的注釋應(yīng)放在其上方或右方(對單條語句的注釋)相鄰位置,不可放在下面,如放于上方則需與其上面的代碼用空行隔開。

示例:如下例子不符合規(guī)范。

例1:

/* get replicate sub system index and net indicator */

repssn_ind = ssn_data[index].repssn_index;

repssn_ni = ssn_data[index].ni;

例2:

repssn_ind = ssn_data[index].repssn_index;

repssn_ni = ssn_data[index].ni;

/* get replicate sub system index and net indicator */

應(yīng)如下書寫

/* get replicate sub system index and net indicator */

repssn_ind = ssn_data[index].repssn_index;

repssn_ni = ssn_data[index].ni;

9:對于所有有物理含義的變量、常量,如果其命名不是充分自注釋的,在聲明時都必須加以注釋,說明其物理含義。變量、常量、宏的注釋應(yīng)放在其上方相鄰位置或右方。

示例:

/* active statistic task number */

#define MAX_ACT_TASK_NUMBER 1000

#define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */

10:數(shù)據(jù)結(jié)構(gòu)聲明(包括數(shù)組、結(jié)構(gòu)、類、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對數(shù)據(jù)結(jié)構(gòu)的注釋應(yīng)放在其上方相鄰位置,不可放在下面;對結(jié)構(gòu)中的每個域的注釋放在此域的右方。

示例:可按如下形式說明枚舉/數(shù)據(jù)/聯(lián)合結(jié)構(gòu)。

/* sccp interface with sccp user primitive message name */

enum SCCP_USER_PRIMITIVE

{

N_UNITDATA_IND, /* sccp notify sccp user unit data come */

N_NOTICE_IND, /* sccp notify user the No.7 network can not */

/* transmission this message */

N_UNITDATA_REQ, /* sccp user's unit data transmission request*/

};

11:全局變量要有較詳細的注釋,包括對其功能、取值范圍、哪些函數(shù)或過程存取它以及存取時注意事項等的說明。

示例:

/* The ErrorCode when SCCP translate */

/* Global Title failure, as follows */ // 變量作用、含義

/* 0 - SUCCESS 1 - GT Table error */

/* 2 - GT error Others - no use */ // 變量取值范圍

/* only function SCCPTranslate() in */

/* this modual can modify it, and other */

/* module can visit it through call */

/* the function GetGTTransErrorCode() */ // 使用方法

BYTE g_GTTranErrorCode;

12:注釋與所描述內(nèi)容進行同樣的縮排。

說明:可使程序排版整齊,并方便注釋的閱讀與理解。

示例:如下例子,排版不整齊,閱讀稍感不方便。

void example_fun( void )

{

/* code one comments */

CodeBlock One

/* code two comments */

CodeBlock Two

}

應(yīng)改為如下布局。

void example_fun( void )

{

/* code one comments */

CodeBlock One

/* code two comments */

CodeBlock Two

}

13:將注釋與其上面的代碼用空行隔開。

示例:如下例子,顯得代碼過于緊湊。

/* code one comments */

program code one

/* code two comments */

program code two

應(yīng)如下書寫

/* code one comments */

program code one

/* code two comments */

program code two

14:對變量的定義和分支語句(條件分支、循環(huán)語句等)必須編寫注釋。

說明:這些語句往往是程序?qū)崿F(xiàn)某一特定功能的關(guān)鍵,對于維護人員來說,良好的注釋幫助更好的理解程序,有時甚至優(yōu)于看設(shè)計文檔。

15:對于switch語句下的case語句,如果因為特殊情況需要處理完一個case后進入下一個case處理,必須在該case語句處理完、下一個case語句前加上明確的注釋。

說明:這樣比較清楚程序編寫者的意圖,有效防止無故遺漏break語句。

示例(注意斜體加粗部分):

case CMD_UP:

ProcessUp();

break;

case CMD_DOWN:

ProcessDown();

break;

case CMD_FWD:

ProcessFwd();

if (...)

{

...

break;

}

else

{

ProcessCFW_B(); // now jump into case CMD_A

}

case CMD_A:

ProcessA();

break;

case CMD_B:

ProcessB();

break;

case CMD_C:

ProcessC();

break;

case CMD_D:

ProcessD();

break;

...

建議:

1:避免在一行代碼或表達式的中間插入注釋。

說明:除非必要,不應(yīng)在代碼或表達中間插入注釋,否則容易使代碼可理解性變差。

2:通過對函數(shù)或過程、變量、結(jié)構(gòu)等正確的命名以及合理地組織代碼的結(jié)構(gòu),使代碼成為自注釋的。

說明:清晰準確的函數(shù)、變量等的命名,可增加代碼可讀性,并減少不必要的注釋。

3:在代碼的功能、意圖層次上進行注釋,提供有用、額外的信息。

說明:注釋的目的是解釋代碼的目的、功能和采用的方法,提供代碼以外的信息,幫助讀者理解代碼,防止沒必要的重復(fù)注釋信息。

示例:如下注釋意義不大。

/* if receive_flag is TRUE */

if (receive_flag)

而如下的注釋則給出了額外有用的信息。

/* if mtp receive a message from links */

if (receive_flag)

4:在程序塊的結(jié)束行右方加注釋標記,以表明某程序塊的結(jié)束。

說明:當代碼段較長,特別是多重嵌套時,這樣做可以使代碼更清晰,更便于閱讀。

示例:參見如下例子。

if (...)

{

// program code

while (index MAX_INDEX)

{

// program code

} /* end of while (index MAX_INDEX) */ // 指明該條while語句結(jié)束

} /* end of if (...)*/ // 指明是哪條if語句結(jié)束

5:注釋格式盡量統(tǒng)一,建議使用"/* …… */"。

6:注釋應(yīng)考慮程序易讀及外觀排版的因素,使用的語言若是中、英兼有的,建議多使用中文,除非能用非常流利準確的英文表達。

說明:注釋語言不統(tǒng)一,影響程序易讀性和外觀排版,出于對維護人員的考慮,建議使用中文。

C語言的一個函數(shù),誰能給逐句注釋一下

void Translate(void)

{

unsigned char data; //聲明data為無符號字符型變量

while((Fifo_Get(data))==0)//while循環(huán),滿足Fifo_Get(data)為真時進入循環(huán)(為取址符,傳輸data變量的存放地址給函數(shù))

{

switch(stateRX) //多項選擇,

{

case RCV_FE: //當stateRX的值等于RCV_FE時執(zhí)行以下語句。(case的格式:case 常量 :。RCV_應(yīng)該是通過在程序開頭#define RCV_FE ??得到的,??表示任何符號 )

if( data == 0xfe) //若data為0xfe(0x??表示十六進制數(shù))時

stateRX++; //stateRX自增(相當于stateRX=stateRX+1;但執(zhí)行速度更快)

else //若前面的data == 0xfe條件不成立,則執(zhí)行以下語句

stateRX = RCV_FE; //賦值語句

break; //跳出switch,(若沒有這步,若case RCV_FE:成立將會一直執(zhí)行下去,忽略下面的case)

case RCV_EF: //同理

if( data == 0xef) //同理

else //同理

stateRX = RCV_FE; //同理

break; //同理

case RCV_ID: //同理

LRC = 0Xff; //同理

id = data; //同理

LRC ^= data; //。。。。。這句就。。。LRC和data的各相應(yīng)位進行異或再賦值給LRC(異或:位運算,法則是必須不同,否則沒有,例子:1^1=0,1^0=1,0^0=0)

stateRX++; //同理

break; //同理

case RCV_LEN: //同理

len = data; //同理

LRC ^= data; //同理

stateRX++; //同理

break;//同理

case RCV_INSTRUCT://同理

cmd = data;//同理

LRC ^= data;//同理

paraindex = 0;//同理

if(len-2=0)//len-2=0的意思是先len-2再判斷l(xiāng)en-2是否小于等于零

stateRX=RCV_CHKSUM;//同理

else//同理

stateRX++; //同理

break; //同理

case RCV_PARA://同理

paratmp[paraindex++] = data;//將data賦值給paratmp[paraindex],然后paraindex自增;

LRC ^= data;//同理

if( paraindex = len-2)//同理

stateRX++; //同理

break;//同理

case RCV_CHKSUM://同理

if(LRC == data)//同理

Dispatch(); //函數(shù)Dispatch()

stateRX = RCV_FE; //同理

break; //同理

default://switch的末句,若以上case都不等于stateRX的值,則執(zhí)行default后面的語句,這里default后面是brake;,這兩句不要也可

break;

}

}

}不能說完,但希望能拿到這兩百塊

C語言里有哪些注釋方法

答:在用C語言編程時,常用的注釋方式有如下幾種:

(1)單行注釋 //…

(2)多行注釋 /*…*/

(3)條件編譯注釋 #if 0…#endif

拓展資料:

對于(1),注釋只能顯示在一行內(nèi),通常出現(xiàn)在一條語句的右邊或者上方,對于注釋符”//”,一個注釋里只要有多余2個’/’都可以。

對于(2),”/*…*/”不能嵌套使用,正如”if…else”中的”else”總是和隔它最近的”if”配對一樣,”/*”總是和離它最近的”*/”相配對。

針對(1)和(2)各自的缺陷,資深的程序員提出如(3)所示的注釋,該注釋的好處是能注釋大塊的程序,并且沒有嵌套的限制,也就是說在”#if 0…#endif”的”…”處可以有”//”或”/*…*/”這樣的注釋。

分享文章:c語言函數(shù)說明注釋 c語言中注釋的例子
本文URL:http://muchs.cn/article28/doesjcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站手機網(wǎng)站建設(shè)、域名注冊、定制開發(fā)商城網(wǎng)站、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)