編程注釋
1. c語言中如何注釋
一般來講有兩種:
一是單行注釋:直接在該行需要注釋的地方加上"//"就行了。例如:
"int a,b;//這是一個注釋行"。那麼,"//"後面的部分"這是一個注釋行"就被注釋掉了,不起作用,但是"//"前面的「int a,b;"不受影響。
另外還有一種是多行同時注釋:
/*
int a,b;
int c,d;
*/
其中"/*"和"*/"起限定范圍的作用,該范圍內的語句都會被注釋掉,將不再起作用。當然,多行注釋也是可以用來單行注釋的
2. 編程時,為什麼需要注釋注釋的類型
// 單行注釋 /***/ 多行注釋///文本注釋
3. 有關編程中注釋語句的求助
注釋只是為了方便程序的閱讀和維護,一些重要的信息要注釋,比如連接前後的一些語句等等。注釋主要描述的是改處語句有什麼作用。方便查找。
4. c語言如何注釋
直接在該行需要注釋的地方加上"//"即可。
可以使用/*和*/分隔符來標注一行內的注釋,也可以標注多行的注釋。例如,在下列的函數原型中,省略號的意思是 open() 函數有第三個參數,它是可選參數。
注釋解釋了這個可選參數的用法:
int open( const char *name, int mode, … /* int permissions */ );
代碼具有較好的可移植性
C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。
以上內容參考:網路-C語言
5. 在網頁編程中如何進行注釋
html代碼的注釋格式是:<!--這里寫注釋的內容(不能再出現「--」,否則容易出錯)-->
腳本或者樣式的(多行)注釋格式是:/*注釋內容寫在這里*/
腳本或者樣式的(單行)注釋格式是://注釋內容寫在這里
6. 編程中的注釋分為三類 單行注釋,多行注釋,文檔注釋;
暈~~~ 自己還是找到了 ·· 留給後來人吧···
http://www.diybl.com/course/3_program/java/javajs/2008911/141971.html
java文檔注釋(有示例)
Java代碼規范--注釋
@author LEI
@version 1.10 2005-09-01
1 注釋文檔的格式注釋文檔將用來生成HTML格式的代碼報告,所以注釋文檔必須書寫在類、域、構造函數、方法、定義之前。注釋文檔由兩部分組成——描述、塊標記。
例如:
/**
* The doGet method of the servlet.
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
前兩行為描述,描述完畢後,由@符號起頭為塊標記注視。
2 注釋的種類2.1 文件頭注釋
文件頭注釋以 /*開始,以*/結束,需要註明該文件創建時間,文件名,命名空間信息。
例如:
/*
* Created on 2005-7-2
* /
2.2 類、介面注釋
類、介面的注釋採用 /** … */,描述部分用來書寫該類的作用或者相關信息,塊標記部分必須註明作者和版本。
例如:
/**Title: XXXX DRIVER 3.0
*Description: XXXX DRIVER 3.0
*Copyright: Copyright (c) 2003
*Company:XXXX有限公司
*
* @author Java Development Group
* @version 3.0
*/
例如:
/**
* A class representing a window on the screen.
* For example:
*
* Window win = new Window(parent);
* win.show();
*
*
* @author Sami Shaio
* @version %I%, %G%
* @see java.awt.BaseWindow
* @see java.awt.Button
*/
class Window extends BaseWindow {
...
}
2.3 構造函數注釋
構造函數注釋採用 /** … */,描述部分註明構造函數的作用,不一定有塊標記部分。
例如:
/**
* 默認構造函數
*/
有例如:
/**
* 帶參數構造函數,初始化模式名,名稱和數據源類型
*
* @param schema
* Ref 模式名
* @param name
* Ref 名稱
* @param type
* byVal 數據源類型
*/
2.4 域注釋
域注釋可以出現在注釋文檔裡面,也可以不出現在注釋文檔裡面。用/** … */的域注釋將會被認為是注釋文檔熱出現在最終生成的HTML報告裡面,而使用/* … */的注釋會被忽略。
例如:
/* 由於triger和表用一個DMSource,所以要區分和表的遷移成功標記 */
boolean isTrigerSuccess = false;
又例如:
/** 由於triger和表用一個DMSource,所以要區分和表的遷移成功標記 */
boolean isTrigerSuccess = false;
再例如:
/**
* The X-coordinate of the component.
*
* @see #getLocation()
*/
int x = 1263732;
2.5 方法注釋
方法注釋採用 /** … */,描述部分註明方法的功能,塊標記部分註明方法的參數,返回值,異常等信息。例如:
/**
* 設置是否有外碼約束
*
* @param conn
* Connection 與資料庫的連接
*/
2.6 定義注釋
規則同域注釋。
3 注釋塊標記3.1 標記的順序
塊標記將採用如下順序:
…
*
* @param (classes, interfaces, methods and constructors only)
* @return (methods only)
* @exception (@throws is a synonym added in Javadoc 1.2)
* @author (classes and interfaces only, required)
* @version (classes and interfaces only, required. See footnote 1)
* @see
* @since
* @serial (or @serialField or @serialData)
* @deprecated (see How and When To Deprecate APIs)
* …
一個塊標記可以根據需要重復出現多次,多次出現的標記按照如下順序:
@author 按照時間先後順序(chronological)
@param 按照參數定義順序(declaration)
@throws 按照異常名字的字母順序(alphabetically)
@see 按照如下順序:
@see #field
@see #Constructor(Type, Type...)
@see #Constructor(Type id, Type id...)
@see #method(Type, Type,...)
@see #method(Type id, Type, id...)
@see Class
@see Class#field
@see Class#Constructor(Type, Type...)
@see Class#Constructor(Type id, Type id)
@see Class#method(Type, Type,...)
@see Class#method(Type id, Type id,...)
@see package.Class
@see package.Class#field
@see package.Class#Constructor(Type, Type...)
@see package.Class#Constructor(Type id, Type id)
@see package.Class#method(Type, Type,...)
@see package.Class#method(Type id, Type, id)
@see package
3.2 標記介紹
3.2.1 @param標記
@param後面空格後跟著參數的變數名字(不是類型),空格後跟著對該參數的描述。
在描述中第一個名字為該變數的數據類型,表示數據類型的名次前面可以有一個冠詞如:a,an,the。如果是int類型的參數則不需要註明數據類型。例如:
…
* @param ch the char 用用來……
* @param _image the image 用來……
* @param _num 一個數字……
…
對於參數的描述如果只是一短語,最好不要首字母大寫,結尾也不要句號。
對於參數的描述是一個句子,最好不要首字母大寫,如果出現了句號這說明你的描述不止一句話。如果非要首字母大寫的話,必須用句號來結束句子。(英文的句號)
公司內部添加ByRef和ByVal兩個標記,例如:
* @param _image the image ByRef 用來……
說明該參數是引用傳遞(指針),ByVal可以省略,表示是值傳遞。
3.2.2 @return標記
返回為空(void)的構造函數或者函數,@return可以省略。
如果返回值就是輸入參數,必須用與輸入參數的@param相同的描述信息。
必要的時候註明特殊條件寫的返回值。
3.2.3 @throws 標記
@throws以前使用的是@exception。
@throws的內容必須在函數的throws部分定義。
3.2.4 @author標記
類注釋標記。
函數注釋裡面可以不出現@author。
3.2.5 @version
類注釋標記。
文章出處:http://www.diybl.com/course/3_program/java/javajs/2008911/141971.html
7. 程序注釋的方式有幾種
一,在Java語言中,注釋有兩種:
單行注釋
//注釋內容
多行注釋
/**
*注釋內容
*/
二,在xml或者HTML中;注釋主要為
<!--注釋內容-->
三,在Python和一般項目配置文件中;注釋主要為
#注釋內容
具體情況要具體分析,你編程使用什麼語言的可以寫出來;一般學習編程教程的初始過程中都會有這方面的知識介紹的,你可以留意一下。
8. C語言程序注釋
C語言編程規范-注釋
規則:
1:一般情況下,源程序有效注釋量必須在20%以上。
說明:注釋的原則是有助於對程序的閱讀理解,在該加的地方都加了,注釋不宜太多也不能太少,注釋語言必須准確、易懂、簡潔。
2:說明性文件(如頭文件.h文件、.inc文件、.def文件、編譯說明文件.cfg等)頭部應進行注釋,注釋必須列出:版權說明、版本號、生成日期、作者、內容、功能、與其它文件的關系、修改日誌等,頭文件的注釋中還應有函數功能簡要說明。
示例:下面這段頭文件的頭注釋比較標准,當然,並不局限於此格式,但上述信息建議要包含在內。
/*************************************************
Copyright (C), 1988-1999, Tech. Co., Ltd.
File name: // 文件名
Author:
Version:
Date: // 作者、版本及完成日期
Description: // 用於詳細說明此程序文件完成的主要功能,與其他模塊
// 或函數的介面,輸出值、取值范圍、含義及參數間的控
// 制、順序、獨立或依賴等關系
Others: // 其它內容的說明
Function List: // 主要函數列表,每條記錄應包括函數名及功能簡要說明
1. ....
History: // 修改歷史記錄列表,每條修改記錄應包括修改日期、修改
// 者及修改內容簡述
1. Date:
Author:
Modification:
2. ...
*************************************************/
3:源文件頭部應進行注釋,列出:版權說明、版本號、生成日期、作者、模塊目的/功能、主要函數及其功能、修改日誌等。
示例:下面這段源文件的頭注釋比較標准,當然,並不局限於此格式,但上述信息建議要包含在內。
/************************************************************
Copyright (C), 1988-1999, Tech. Co., Ltd.
FileName: test.cpp
Author:
Version :
Date:
Description: // 模塊描述
Version: // 版本信息
Function List: // 主要函數及其功能
1. -------
History: // 歷史修改記錄
<author> <time> <version > <desc>
David 96/10/12 1.0 build this moudle
***********************************************************/
說明:Description一項描述本文件的內容、功能、內部各部分之間的關系及本文件與其它文件關系等。History是修改歷史記錄列表,每條修改記錄應包括修改日期、修改者及修改內容簡述。
4:函數頭部應進行注釋,列出:函數的目的/功能、輸入參數、輸出參數、返回值、調用關系(函數、表)等。
示例:下面這段函數的注釋比較標准,當然,並不局限於此格式,但上述信息建議要包含在內。
/*************************************************
Function: // 函數名稱
Description: // 函數功能、性能等的描述
Calls: // 被本函數調用的函數清單
Called By: // 調用本函數的函數清單
Table Accessed: // 被訪問的表(此項僅對於牽扯到資料庫操作的程序)
Table Updated: // 被修改的表(此項僅對於牽扯到資料庫操作的程序)
Input: // 輸入參數說明,包括每個參數的作
// 用、取值說明及參數間關系。
Output: // 對輸出參數的說明。
Return: // 函數返回值的說明
Others: // 其它說明
*************************************************/
5:邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除。
6:注釋的內容要清楚、明了,含義准確,防止注釋二義性。
說明:錯誤的注釋不但無益反而有害。
7:避免在注釋中使用縮寫,特別是非常用縮寫。
說明:在使用縮寫時或之前,應對縮寫進行必要的說明。
8:注釋應與其描述的代碼相近,對代碼的注釋應放在其上方或右方(對單條語句的注釋)相鄰位置,不可放在下面,如放於上方則需與其上面的代碼用空行隔開。
示例:如下例子不符合規范。
例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 */
應如下書寫
/* get replicate sub system index and net indicator */
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
9:對於所有有物理含義的變數、常量,如果其命名不是充分自注釋的,在聲明時都必須加以注釋,說明其物理含義。變數、常量、宏的注釋應放在其上方相鄰位置或右方。
示例:
/* active statistic task number */
#define MAX_ACT_TASK_NUMBER 1000
#define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */
10:數據結構聲明(包括數組、結構、類、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對數據結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域的注釋放在此域的右方。
示例:可按如下形式說明枚舉/數據/聯合結構。
/* 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:全局變數要有較詳細的注釋,包括對其功能、取值范圍、哪些函數或過程存取它以及存取時注意事項等的說明。
示例:
/* 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 moal can modify it, and other */
/* mole can visit it through call */
/* the function GetGTTransErrorCode() */ // 使用方法
BYTE g_GTTranErrorCode;
12:注釋與所描述內容進行同樣的縮排。
說明:可使程序排版整齊,並方便注釋的閱讀與理解。
示例:如下例子,排版不整齊,閱讀稍感不方便。
void example_fun( void )
{
/* code one comments */
CodeBlock One
/* code two comments */
CodeBlock Two
}
應改為如下布局。
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
應如下書寫
/* code one comments */
program code one
/* code two comments */
program code two
14:對變數的定義和分支語句(條件分支、循環語句等)必須編寫注釋。
說明:這些語句往往是程序實現某一特定功能的關鍵,對於維護人員來說,良好的注釋幫助更好的理解程序,有時甚至優於看設計文檔。
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:避免在一行代碼或表達式的中間插入注釋。
說明:除非必要,不應在代碼或表達中間插入注釋,否則容易使代碼可理解性變差。
2:通過對函數或過程、變數、結構等正確的命名以及合理地組織代碼的結構,使代碼成為自注釋的。
說明:清晰准確的函數、變數等的命名,可增加代碼可讀性,並減少不必要的注釋。
3:在代碼的功能、意圖層次上進行注釋,提供有用、額外的信息。
說明:注釋的目的是解釋代碼的目的、功能和採用的方法,提供代碼以外的信息,幫助讀者理解代碼,防止沒必要的重復注釋信息。
示例:如下注釋意義不大。
/* if receive_flag is TRUE */
if (receive_flag)
而如下的注釋則給出了額外有用的信息。
/* if mtp receive a message from links */
if (receive_flag)
4:在程序塊的結束行右方加註釋標記,以表明某程序塊的結束。
說明:當代碼段較長,特別是多重嵌套時,這樣做可以使代碼更清晰,更便於閱讀。
示例:參見如下例子。
if (...)
{
// program code
while (index < MAX_INDEX)
{
// program code
} /* end of while (index < MAX_INDEX) */ // 指明該條while語句結束
} /* end of if (...)*/ // 指明是哪條if語句結束
5:注釋格式盡量統一,建議使用"/* …… */"。
6:注釋應考慮程序易讀及外觀排版的因素,使用的語言若是中、英兼有的,建議多使用中文,除非能用非常流利准確的英文表達。
說明:注釋語言不統一,影響程序易讀性和外觀排版,出於對維護人員的考慮,建議使用中文。
9. 程序為什麼要加註釋加註釋有幾種方法各有何特點
注釋為對代碼的解釋和說明,其目的是讓人們能夠更加輕松地了解代碼。注釋為編寫程序時,寫程序的人給一個語句、程序段、函數等的解釋或提示,能提高程序代碼的可讀性。注釋只是為了提高可讀性,不會被計算機編譯。
注釋通常會分為行注釋和塊注釋。
行注釋:在符號後那一行不會被編譯(顯示);塊注釋:被塊注釋符號中間的部分不會被編譯。
(9)編程注釋擴展閱讀
C語言的注釋符以「/*」開頭並以「*/」結尾的串。在「/*」和「*/」之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現在程序中的任何位置。
注釋用來向用戶提示或解釋程序的意義。在調試程序中對暫不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調試結束後再去掉注釋符。
可以使用多種方法創建文字。對簡短的輸入項使用單行文字。對帶有內部格式的較長的輸入項使用多行文字(也稱為多行文字)。也可創建帶有引線的多行文字。
雖然所有輸入的文字都使用建立了默認字體和格式設置的當前文字樣式,但也可以使用其他的方法自定義文字外觀。有一些工具可以方便用戶修改文字比例和對正、查找和替換文字以及檢查拼寫錯誤。