簡(jiǎn)介:
對(duì)于代碼的規(guī)范性不管是做純軟件開(kāi)發(fā)的還是做嵌入式開(kāi)發(fā)的或者使用各種語(yǔ)言的,都是非常重要的。代碼的規(guī)范性對(duì)編寫(xiě)人員對(duì)代碼后期的維護(hù)以及其他開(kāi)發(fā)人員閱讀等都是非常友好的。接下來(lái)我們會(huì)對(duì)代碼的規(guī)范性進(jìn)行說(shuō)明(當(dāng)然,根據(jù)個(gè)人的情況和企業(yè)的不同可能要求不一樣,我就根據(jù)我個(gè)人的一個(gè)情況進(jìn)行一些說(shuō)明,本專(zhuān)題不作為最終范本,僅用來(lái)作為參考)
注釋問(wèn)題
本篇就說(shuō)說(shuō)代碼的注釋問(wèn)題,這東西就像去飯店吃飯一樣,有菜單、指示牌等。注釋就相當(dāng)于這些,是對(duì)代碼的一種說(shuō)明。
頭部注釋
說(shuō)明性文件(例如.h)
注釋要列出下列幾項(xiàng):版權(quán)說(shuō)明、版本號(hào)、生成日期、作者、內(nèi)容、 功能、與其它文件的關(guān)系、修改日志等,頭文件的注釋中以及函數(shù)功能簡(jiǎn)要說(shuō)明。
例如:
1/*****************************************************************************
2Copyright (c) 2016 XXXXXXXXXXXXXXXXX., Ltd. All rights reserved.
3
4File name:/*文件名*/
5Date Author: Version: /*作者、版本及完成日期*/
6
7Description:/*用于詳細(xì)說(shuō)明此程序文件完成的主要功能,
8 與其他模塊或函數(shù)的接口,輸出值、取值范圍、含義及參數(shù)間的控制、順序、獨(dú)立或依賴(lài)等關(guān)系*/
9
10Others:/*其它內(nèi)容的說(shuō)明*/
11
12Function List:/*主要函數(shù)列表,每條記錄應(yīng)包括函數(shù)名及功能簡(jiǎn)要說(shuō)明*/
131.…
14History:
15/*修改歷史記錄列表,每條修改記錄應(yīng)包括修改日期、修改者及修改內(nèi)容簡(jiǎn)述*/
16
171. Date:
18Author:
19Modification:
202.…
21
22*****************************************************************************/
源文件頭部注釋
源文件頭部注釋要有版本說(shuō)明、版本號(hào)等
版權(quán)說(shuō)明、版本號(hào)、 生成日期、作者、模塊目的/功能、主要函數(shù)、修改日志、修改人、修改日期等。
1/***********************************************************************
2* Copyright (C) company name xxxCo., Ltd. *
3* All Rights Reserved. *
4* Department : *
5* AUTHOR : NSF *
6************************************************************************
7* Object :
8* Module :
9* Instance :
10* Description :/*模塊描述*/
11*-----------------------------------------------------------------------
12* Version:
13* Date:
14* Author: /*作者*/
15***********************************************************************/
16/*-History--------------------------------------------------------------
17* Version Date Name Changes and comments
18*=====================================================================*/
函數(shù)頭部注釋
列出函數(shù)的作用、目的、輸入輸出參數(shù)等
1/*************************************************
2Function: /* 函數(shù)名稱(chēng)*/
3Description: /* 函數(shù)功能、性能等的描述*/
4Input: /* 輸入?yún)?shù)說(shuō)明,包括每個(gè)參數(shù)的作用、取值說(shuō)明及參數(shù)間關(guān)系。*/
5Output: /* 對(duì)輸出參數(shù)的說(shuō)明。*/
6Return: /* 函數(shù)返回值的說(shuō)明*/
7Others: /* 其它說(shuō)明,應(yīng)標(biāo)明是否是可重入函數(shù)*/
8*************************************************/
在寫(xiě)代碼的同時(shí),我們盡量編寫(xiě)代碼編注釋?zhuān)瑫r(shí)修改代碼也要有相對(duì)應(yīng)的注釋?zhuān)康氖菫榱俗⑨尯痛a的一致性(想想你把項(xiàng)目寫(xiě)完了再去注釋?zhuān)氵€知道哪跟哪不?)
要對(duì)所有的變量、常量其命名不能夠充分解釋其代表的意義,要進(jìn)行說(shuō)明。
比如:
1/* active statistic task number */
2#define ACT_TASK_NUMBER 1000
3
4#define ACT_TASK_NUMBER 1000 /* active statistic task number */
數(shù)據(jù)結(jié)構(gòu)聲明(包括數(shù)組、結(jié)構(gòu)、類(lèi)、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對(duì)數(shù)據(jù)結(jié)構(gòu)的注釋?xiě)?yīng)放在其上方相鄰位置,不可放在下面;對(duì)結(jié)構(gòu)中的每個(gè)域的注釋放在此域的右方。
對(duì)于switch語(yǔ)句下的case語(yǔ)句,如果因?yàn)樘厥馇闆r需要處理完一個(gè)case后進(jìn)入下一個(gè)case處理,必須在該case語(yǔ)句處理完、下一個(gè)case語(yǔ)句前加上明確的注釋。
統(tǒng)一保存為UTF-8代碼編碼格式(這個(gè)任何編譯器都有的,但是對(duì)于GB并不是所有的都支持) 。
在代碼的功能、意圖層次上進(jìn)行注釋?zhuān)峁┯杏?、額外的信息。
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317620 -
接口
+關(guān)注
關(guān)注
33文章
9005瀏覽量
153763 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4381瀏覽量
64895 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70751 -
變量
+關(guān)注
關(guān)注
0文章
614瀏覽量
28962
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式軟件的注釋技巧
如何提高嵌入式代碼質(zhì)量?
如何調(diào)試嵌入式代碼?
Caché嵌入式代碼分享
嵌入式系統(tǒng)原理、設(shè)計(jì)與應(yīng)用
淺談嵌入式linux啟動(dòng)信息注釋
嵌入式代碼之編寫(xiě)規(guī)范
盤(pán)點(diǎn)幾種主流嵌入式架構(gòu)的代碼壓縮技術(shù)
如何將嵌入式的代碼優(yōu)化
關(guān)于嵌入式代碼的致命漏洞
嵌入式代碼的致命安全漏洞
嵌入式外中斷c語(yǔ)言代碼

評(píng)論