【文章內(nèi)容簡(jiǎn)介】
Page 11 of 47 //program codeendif /* _FILENAME_H */【規(guī)則 331】注:使用 git在 mit代碼時(shí)填寫充分、準(zhǔn)確的 message。[必須]【規(guī)則 332】為了防止頭文件被重復(fù)引用,應(yīng)當(dāng)用ifndef/define/endif 結(jié)構(gòu)產(chǎn)生預(yù)處理塊。[必須]【規(guī)則 333】用 include 格式來(lái)引用標(biāo)準(zhǔn)庫(kù)的頭文件(編譯器將從標(biāo)準(zhǔn)庫(kù)目錄開始搜索)。[必須]【規(guī)則 334】用 include “” 格式來(lái)引用非標(biāo)準(zhǔn)庫(kù)的頭文件(編譯器將從用戶的工作目錄開始搜索)。[必須]【規(guī)則 335】頭文件中只存放“聲明”而不存放“定義”。(建議將成員函數(shù)的定義與聲明分開,不論該函數(shù)體有多么小。)[必須]? 【規(guī)則 34】源文件頭部應(yīng)進(jìn)行注釋,列出:版權(quán)說(shuō)明、版本號(hào)、作者、模塊目的/功能、主要函數(shù)及其功能、修改日志等。[必須]源文件模板示例:/****************************************************************** * (c) Copyright 20222022, TRZN, All Rights Reserved. * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF TRZN, INC. * The copyright notice above does not evidence any actual or intended * publication of such source code. * * Subsystem: XXX * File: * Author: Xxxxx * Description: Template for C source files. ** //可選擇的增加部分內(nèi)容 * Function List: //主要函數(shù)列表,每個(gè)函數(shù)一行,包含其返回值類型及參數(shù)類型。功能說(shuō)明應(yīng)當(dāng)放在函數(shù)頭注釋中* 1. .... * History: // 修改歷史記錄列表,每條修改記錄應(yīng)包括修改日期、修改 * // 者及修改內(nèi)容簡(jiǎn)述。( 參見底注) * 1. Date: * Author: * Modification:TRZN項(xiàng)目: Embedded software development領(lǐng)域: SW Engineering文件名稱: 嵌入式軟件編程規(guī)范文件號(hào): SW00000001版本號(hào): 日期: 20221028所屬部門: 電控質(zhì)量管理部?jī)H限項(xiàng)目組內(nèi)部傳閱 Page 12 of 47 * 2. ...* ***************************************************************//*說(shuō)明:Description一項(xiàng)描述本文件的內(nèi)容、功能、內(nèi)部各部分之間的關(guān)系及本文件與其它文件關(guān)系等。History是修改歷史記錄列表,每條修改記錄應(yīng)包括修改日期、修改者及修改內(nèi)容簡(jiǎn)述。 */include /******************************************************************** * * Function Name: XXX_Func1 * Input: Param1 meaning。 * Param2 meaning。 * Output: If there39。s no parameters for output, this field can be * None or omitted. * Returns: OK,ERROR * Description: This is an external function of XXX. * **********************************************************************/STATUS XXX_Func1(UINT8 Param1, UINT32 Param2){}【規(guī)則 341 】注:使用 git 在 mit 代碼時(shí)填寫充分、準(zhǔn)確的 message。[必須]? 【規(guī)則 35】函數(shù)頭部應(yīng)進(jìn)行注釋,列出:函數(shù)的目的/功能、輸入?yún)?shù)、輸出參數(shù)、返回值、調(diào)用關(guān)系(函數(shù)、表)等。[必須]函數(shù)注釋模板示例:TRZN項(xiàng)目: Embedded software development領(lǐng)域: SW Engineering文件名稱: 嵌入式軟件編程規(guī)范文件號(hào): SW00000001版本號(hào): 日期: 20221028所屬部門: 電控質(zhì)量管理部?jī)H限項(xiàng)目組內(nèi)部傳閱 Page 13 of 47 /**************************************************************************** * * Function Name: XXX_ExternalFunc1 * Input: Param1 meaning。 * Param2 meaning。 * Output: If there39。s no parameters for output, this field can be * None or omitted. * Returns: OK,ERROR * Description: Performs xxx functions. * Note: Any special note. This can be omitted. * * //其它可選擇的函數(shù)頭說(shuō)明* Calls: // 被本函數(shù)調(diào)用的函數(shù)清單* Called By: // 調(diào)用本函數(shù)的函數(shù)清單* Table Accessed: // 被訪問(wèn)的表(此項(xiàng)僅對(duì)于牽扯到數(shù)據(jù)庫(kù)操作的程序)* Table Updated: // 被修改的表(此項(xiàng)僅對(duì)于牽扯到數(shù)據(jù)庫(kù)操作的程序)* Others: // 其它說(shuō)明* ***************************************************************************/STATUS XXX_ExternalFunc1(UINT8 Param1, UINT32 Param2)?!疽?guī)則 351】外部函數(shù)必須有函數(shù)頭注釋。[必須]【規(guī)則 352】?jī)?nèi)部函數(shù)強(qiáng)烈建議使用函數(shù)頭注釋。[建議]? 【規(guī)則 36】邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,以保證注釋與代碼的一致性。不再有用的注釋要?jiǎng)h除。注釋的格式盡量統(tǒng)一。 [必須]示例:?jiǎn)涡凶⑨?* Create a one shot timer, from now. */多行注釋/* One or more tables of lteDevDescr structures must also be defined for each board type into the dynamicallyloaded boardspecific configuration file. The device descriptor provides function pointers that give standard line termination equipment API access to a specific hardware driver. */? 【規(guī)則 37】注釋的內(nèi)容要清楚、明了,含義準(zhǔn)確,防止注釋二義性。[建議]說(shuō)明:錯(cuò)誤的注釋不但無(wú)益反而有害。? 【規(guī)則 38】避免在注釋中使用縮寫,特別是非常用縮寫 。[ 建議]說(shuō)明:在使用縮寫時(shí)或之前,應(yīng)對(duì)縮寫進(jìn)行必要的說(shuō)明。TRZN項(xiàng)目: Embedded software development領(lǐng)域: SW Engineering文件名稱: 嵌入式軟件編程規(guī)范文件號(hào): SW00000001版本號(hào): 日期: 20221028所屬部門: 電控質(zhì)量管理部?jī)H限項(xiàng)目組內(nèi)部傳閱 Page 14 of 47 ? 【規(guī)則 39】注釋應(yīng)與其描述的代碼相近,對(duì)代碼的注釋應(yīng)放在其上方或右方(對(duì)單條語(yǔ)句的注釋)相鄰位置,不可放在下面;如放于上方則需與其上面的代碼用空行隔開。[必須]示例:如下例子不符合規(guī)范。例 1(錯(cuò)):/* get replicate sub system index and indicator */rprRepssnInd = rprSsnData[index].nRepssnIndex。rprRepssnNi = rprSsnData[index].ni。例 2(錯(cuò)):rprRepssnInd = rprSsnData[index].nRepssnIndex。rprRepssnNi = rprSsnData[index].ni。/* get replicate sub system index and indicator */應(yīng)如下書寫/* get replicate sub system index and indicator */rprRepssnInd = rprSsnData[index].nRepssnIndex。rprRepssnNi = rprSsnData[index].ni。? 【規(guī)則 310】對(duì)于所有有物理含義的變量、常量,如果其命名不是充分自注釋的,在聲明時(shí)都必須加以注釋,說(shuō)明其物理含義。變量、常量、宏的注釋應(yīng)放在其上方相鄰位置或右方。[必須]示例:示例 1:/* active statistic task number */define SYS_MAX_ACT_TASK_NUMBER 1000示例 2:define SYS_MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */? 【規(guī)則 311】數(shù)據(jù)結(jié)構(gòu)聲明(包括數(shù)組、結(jié)構(gòu)、類、枚舉等),如果其命名不是充分自注釋的,必須加以注釋。對(duì)數(shù)據(jù)結(jié)構(gòu)的注釋應(yīng)放在其上方相鄰位置,不可放在下面;對(duì)結(jié)構(gòu)中的每個(gè)域的注釋放在此域的右方。[必須]示例:可按如下形式說(shuō)明枚舉/數(shù)據(jù)/ 聯(lián)合結(jié)構(gòu)。TRZN項(xiàng)目: Embedded software development領(lǐng)域: SW Engineering文件名稱: 嵌入式軟件編程規(guī)范文件號(hào): SW00000001版本號(hào): 日期: 20221028所屬部門: 電控質(zhì)量管理部?jī)H限項(xiàng)目組內(nèi)部傳閱 Page 15 of 47 /* sccp interface with sccp user primitive message name */typedef enum SCP_USER_PRIMITIVE_t{ SCP_UNITDATA_IND, /* sccp notify sccp user unit data e */ SCP_NOTICE_IND, /* Sccp notify user the work can not transmission this message */ SCP_UNITDATA_REQ, /* sccp user39。s unit data tra