![C語(yǔ)言命名規(guī)范-OSEK-101022_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-9/25/3013fd56-5600-48bb-92e3-5c0b6bbea5c4/3013fd56-5600-48bb-92e3-5c0b6bbea5c41.gif)
![C語(yǔ)言命名規(guī)范-OSEK-101022_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-9/25/3013fd56-5600-48bb-92e3-5c0b6bbea5c4/3013fd56-5600-48bb-92e3-5c0b6bbea5c42.gif)
![C語(yǔ)言命名規(guī)范-OSEK-101022_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-9/25/3013fd56-5600-48bb-92e3-5c0b6bbea5c4/3013fd56-5600-48bb-92e3-5c0b6bbea5c43.gif)
![C語(yǔ)言命名規(guī)范-OSEK-101022_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-9/25/3013fd56-5600-48bb-92e3-5c0b6bbea5c4/3013fd56-5600-48bb-92e3-5c0b6bbea5c44.gif)
![C語(yǔ)言命名規(guī)范-OSEK-101022_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-9/25/3013fd56-5600-48bb-92e3-5c0b6bbea5c4/3013fd56-5600-48bb-92e3-5c0b6bbea5c45.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、長(zhǎng)青一搜啟明信舅技朮股份肓眼公司Changchun FAW Qimlng Info. Tech. Cd, LtdC語(yǔ)言命名規(guī)范OSEK文件編號(hào):生效日期:年 月曰版本號(hào):A修改狀態(tài):0受控狀態(tài):受控非受控總頁(yè)數(shù):附錄:0密級(jí):機(jī)密編制:審核:批準(zhǔn):年 月曰年 月曰年 月曰文檔修訂摘要日期版本號(hào)/狀態(tài)描述著者審閱者批準(zhǔn)人/日期2010年10月22日1.0王艷春年 月曰C語(yǔ)言命名規(guī)范一、命名規(guī)則1、變量名的命名規(guī)則 、變量的命名規(guī)則要求用匈牙利法則”。即開頭字母用變量的類型,其余部分用變量的英文意思或其英文意思的縮寫,盡量避免用中文的拼音,要求單詞的第一個(gè)字母應(yīng)大寫。即: 變量名=變量類型+變量的
2、英文意思(或縮寫),程序中不要岀現(xiàn)標(biāo)識(shí)符完全相同的局部變量和全局變量,盡管兩者的作用域不同而不會(huì)發(fā)生語(yǔ)法錯(cuò)誤,但會(huì)使人誤解。變量的名字應(yīng)當(dāng)使用“名詞”或者“形容詞+名詞”。例如:float f OldValue;float fValue;對(duì)非通用的變量,在定義時(shí)加入注釋說(shuō)明,變量定義盡量可能放在函數(shù)的開始處見(jiàn)下表:變量類型縮寫例子bool(BOOL)用b開頭bIsPare ntbyte(BYTE)用by開頭byFlagshort(i nt)用n開頭n StepCou ntlon g(LONG)用l開頭lSumchar(CHAR)用c開頭cCou ntfloat(FLOAT)用f開頭fAvgdo
3、uble(DOUBLE)用d開頭dDetavoid(VOID)用v開頭vVaria ntun sig nedint (WOR)用w開頭wCou ntun sig ned lon g(DWORD)用dw開頭dwBroadHANDLE( HINSTANCE用h開頭hHa ndleDWORD用dw開頭dwWordLPCSTR(LPCTSTR)用str開頭strStri ng用0結(jié)尾的字符串用sz開頭szFileName 、指針變量命名的基本原則為對(duì)一重指針變量的基本原則為:p”+變量類型前綴+命名如一個(gè)float*型應(yīng)該表示為 pfStat對(duì)多重指針變量的基本規(guī)則為:二重指針:Pp”+變量類型前綴+
4、命名三重指針:ppp ”+變量類型前綴+命名 、全局變量用 g_開頭,如一個(gè)全局的長(zhǎng)型變量定義為g_lFailCount,即:變量名=g_+變量類型+變量的英文機(jī)密公司名稱,2003頁(yè)2/8意思(或縮寫) 、靜態(tài)變量用 s_開頭,如一個(gè)靜態(tài)的指針變量定義為s_plPerv_l nst,即:變量名=s_+變量類型+變量的英文意思(或縮寫) 、對(duì)枚舉類型(enum)中的變量,要求用枚舉變量或其縮寫做前綴。并且要求用大寫如: enum cmEMDAYSEMDAYS_MONDAY; EMDAYS_TUESDAY;、 對(duì) struct 、 union 、 class 變量的命名要求定義的類型用大寫。并要
5、加上前綴, 其內(nèi)部變量的命名規(guī)則與變量命名規(guī)則一致。結(jié)構(gòu)體一般用 S 開頭如:struct SNPointintnX;/ 點(diǎn)的 X 位置intnY; / 點(diǎn)的 Y 位置;聯(lián)合體一般用 U 開頭如:union ULPointlong lX;long lY;、對(duì)常量(包括錯(cuò)誤的編碼)命名,要求常量名用大寫,常量名用英文表達(dá)其意思。如: #define MAX 100、對(duì)con st的變量要求在變量的命名規(guī)則前加入c_,即:c_+變量命名規(guī)則;例如:const char* c_szFileName;2、函數(shù)的命名規(guī)范函數(shù)的命名應(yīng)該盡量用英文表達(dá)出函數(shù)完成的功能。函數(shù)名字應(yīng)當(dāng)使用“動(dòng)詞”或者“動(dòng)詞名詞
6、”(動(dòng) 賓詞組)遵循動(dòng)賓結(jié)構(gòu)的命名法則,函數(shù)名中動(dòng)詞在前。例如: int GetValue (? ) ;3、函數(shù)參數(shù)規(guī)范 、參數(shù)名稱的命名參照變量命名規(guī)范。 、為了提高程序的運(yùn)行效率,減少參數(shù)占用的堆棧,傳遞大結(jié)構(gòu)的參數(shù),一律采用指針或引用方式傳C語(yǔ)言命名規(guī)范 、如果參數(shù)是指針,且僅作輸入用,則應(yīng)在類型前加con st,以防止該指針在函數(shù)體內(nèi)被意外修改。同時(shí)可以用來(lái)區(qū)分輸入?yún)?shù)還是輸岀參數(shù)。例如: void StringCopy(char *strDestination, const char *strSource);二、注釋規(guī)范:1、函數(shù)頭的注釋對(duì)于函數(shù),應(yīng)該從 函數(shù)名稱”,函數(shù)功能”,輸入
7、參數(shù)”、輸岀參數(shù)”、 返回值”、說(shuō)明”和日期”七個(gè)方面用如下格式注釋:/*|函數(shù)名稱:GetData|函數(shù)功能:獲取接收到的數(shù)據(jù)|輸入?yún)?shù):char *pcData :獲取到的數(shù)據(jù)|輸出參數(shù):無(wú)|返回值:無(wú)|說(shuō)明:無(wú)| 日期:2010/8/21.9:40-2010/8/22.8:00| |*/ 、對(duì)于某些函數(shù),其部分參數(shù)為傳入值,而部分參數(shù)為傳岀值,所以對(duì)參數(shù)要詳細(xì)說(shuō)明該參數(shù)是入口參數(shù),還是岀口參數(shù),對(duì)于某些意義不明確的參數(shù)還要做詳細(xì)說(shuō)明(例如:以角度作為參數(shù)時(shí),要說(shuō) 明該角度參數(shù)是以弧度(PI),還是以度為單位),對(duì)既是入口又是岀口的變量應(yīng)該在入口和岀口處同時(shí)標(biāo)明。 、函數(shù)的注釋應(yīng)該放置在函
8、數(shù)的頭文件中,在實(shí)現(xiàn)文件中的該函數(shù)的實(shí)現(xiàn)部分應(yīng)該同時(shí)放置該注 釋。 、說(shuō)明部分應(yīng)用闡述函數(shù)的主要實(shí)現(xiàn)思路、特別要注明自己的一些想法,如果有必要?jiǎng)t應(yīng)該寫明對(duì)想 法產(chǎn)生的來(lái)由。對(duì)一些模仿的函數(shù)應(yīng)該注釋上函數(shù)的岀處。在注釋中要強(qiáng)調(diào)調(diào)用時(shí)的危險(xiǎn)方面,可能 出錯(cuò)的地方。 、對(duì)日期的注釋要求記錄從開始寫函數(shù)到結(jié)束函數(shù)的測(cè)試之間的日期。2、變量的注釋對(duì)于變量的注釋緊跟在變量的后面說(shuō)明變量的作用。原則上對(duì)于每個(gè)變量應(yīng)該注釋,但對(duì)于意義非常明顯 的變量,如:i,j等循環(huán)變量可以不注釋。例如: long ILineCount/線的根數(shù)。3、文件的注釋機(jī)密公司名稱,2003頁(yè)3/8*| Copyright (c)
9、2010,5,12 16:12|長(zhǎng)春一汽啟明公司 | | 文件名稱: CHfpPbap.cpp| 文件標(biāo)識(shí):| 摘要: 簡(jiǎn)要描述該文件的內(nèi)容| 其它說(shuō)明:重點(diǎn)闡述一些注意事項(xiàng),自己的想法,|用了什么好的算法等1| 當(dāng)前版本:| 作者:王艷春| 完成日期:| | | 修改記錄 1:| 修改日期:| 版本號(hào):| 修改人:| 修改原因:| 修改內(nèi)容:| 修改代碼位置:| | |修改記錄2:|*/為了頭文件被重復(fù)包含要求對(duì)頭文件進(jìn)行定義如下為了防止頭文件被重復(fù)引用,應(yīng)當(dāng)用 ifndef/define/endif 結(jié)構(gòu)產(chǎn)生預(yù)處理塊。#ifndef_FILENAME_H_#define_FILENAME_
10、H_#endif其中FILENAMES頭文件的名字。用#i nclude 格式來(lái)引用標(biāo)準(zhǔn)庫(kù)的頭文件(編譯器將從標(biāo)準(zhǔn)庫(kù)目錄開始搜索)。用#include “filename.h格式來(lái)引用非標(biāo)準(zhǔn)庫(kù)的頭文件(編譯器將從用戶的工作目錄 開始搜索)。4、其他注釋: 在函數(shù)內(nèi)我們不需要注釋每一行語(yǔ)句。但必須在各功能模塊的每一主要部分之前添加塊注釋,注釋每一組語(yǔ) 句,在循環(huán)、流程的各分支等,盡可能多加以注釋。其中的循環(huán)、條件、選擇等位置必須注釋。C語(yǔ)言命名規(guī)范對(duì)于前后順序不能顛倒的情況,建議在注釋中增加序號(hào)。例如:在其他順序執(zhí)行的程序中,每隔35行語(yǔ)句,必須加一個(gè)注釋,注明這一段語(yǔ)句所組成的小模塊的作用。對(duì)
11、于自己的一些比較獨(dú)特的思想要求在注釋中標(biāo)明。三、程序健壯性1、函數(shù)的返回值規(guī)范要求大家統(tǒng)一函數(shù)的返回值,函數(shù)執(zhí)行成功返回0,如果執(zhí)行失敗則返回1。建議函數(shù)實(shí)現(xiàn)如下:WORD函數(shù)名(參數(shù),)If (成功)成功返回0;else返回1;2、關(guān)于goto的應(yīng)用自從提倡結(jié)構(gòu)化設(shè)計(jì)以來(lái),goto就成了有爭(zhēng)議的語(yǔ)句。首先,由于goto語(yǔ)句可以靈活跳轉(zhuǎn),如果不加限制,它的確會(huì)破壞結(jié)構(gòu)化設(shè)計(jì)風(fēng)格。其次,goto語(yǔ)句經(jīng)常帶來(lái)錯(cuò)誤或隱患。它可能跳過(guò)了某些變量的初始化、重要的計(jì)算等語(yǔ)句,例如:goto state;int sum = 0; / 被goto 跳過(guò)state:如果編譯器不能發(fā)覺(jué)此類錯(cuò)誤,每用一次goto語(yǔ)
12、句都可能留下隱患。很多人建議廢除C+/C的goto語(yǔ)句,以絕后患。但實(shí)事求是地說(shuō),錯(cuò)誤是程序員自己造成的,不是goto的過(guò)錯(cuò)。goto語(yǔ)句至少有一處可顯神通,它能從多重循環(huán)體中咻地一下子跳到外面,用不著寫很多次的break語(yǔ)句。就象樓房著火了,來(lái)不及從樓梯一級(jí)一級(jí)往下走,可從窗口跳岀火坑。所以我們主張少用、慎用goto語(yǔ)句,而不是完全禁用。對(duì)goto語(yǔ)句的應(yīng)用,我們要求盡量少用goto語(yǔ)句。對(duì)一定要用的地方要求只能向后轉(zhuǎn)移。3、資源變量的處理(資源變量是指消耗系統(tǒng)資源的變量)對(duì)資源變量一定賦初值,分配的資源在用完后必須馬上釋放,并重新賦值。機(jī)密公司名稱,2003頁(yè)6/84、對(duì)復(fù)雜的條件判斷,為
13、了程序的可讀性,應(yīng)該盡量使用括號(hào)。例: if(szFileName!=NULL)&(lCount=0)|(bIsReaded=TRUE)四、一些有益的建議1、 用malloc或new申請(qǐng)內(nèi)存之后,應(yīng)該立即檢查指針值是否為NULL。防止使用指針值為 NUL啲內(nèi)存。動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),防止內(nèi)存泄漏。用free或delete 釋放了內(nèi)存之后,立即將指針設(shè)置為NULL防止產(chǎn)生“野指針”。2、指針變量與零值比較應(yīng)當(dāng)將指針變量用“=”或“!=”與NULL比較。指針變量的零值是“空”(記為 NULL。盡管NULL 的值與0相同,但是兩者意義不同。假設(shè)指針變量的名字為p,它與零值比較的標(biāo)準(zhǔn)if語(yǔ)句如
14、下:if (p = NULL) / p與NULL顯式比較,強(qiáng)調(diào)p是指針變量if (p != NULL)不要寫成if (p = 0) / 容易讓人誤解 p 是整型變量if (p != 0)或者if (p) / 容易讓人誤解 p 是布爾變量if (!p)3 、布爾變量與零值比較不可將布爾變量直接與 TRUE、FALSE 或者1、0 進(jìn)行比較。 根據(jù)布爾類型的語(yǔ)義,零值為“假”(記為 FALSE,任何非零值都是“真”(記為 TRUE。TRUE的值究竟是什么并沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)。例如Visual C+ 將TRUE定義為1,而Visual Basic 則將TRUE定義為-1。假設(shè)布爾變量名字為 flag ,
15、它與零值比較的標(biāo)準(zhǔn) if 語(yǔ)句如下:if (flag) / 表示 flag 為真if (!flag) /表示 flag 為假其它的用法都屬于不良風(fēng)格,例如:if (flag = TRUE)if (flag = 1 )if (flag = FALSE)if (flag = 0)4 、整型變量與零值比較應(yīng)當(dāng)將整型變量用“ =”或“!=”直接與 0 比較。假設(shè)整型變量的名字為 value ,它與零值比較的標(biāo)準(zhǔn) if 語(yǔ)句如下: if (value = 0)if (value != 0)不可模仿布爾變量的風(fēng)格而寫成if (value) / 會(huì)讓人誤解 value 是布爾變量if (!value)5、i
16、f 、for 、while 、do 等語(yǔ)句自占一行,執(zhí)行語(yǔ)句不得緊跟其后。不論執(zhí)行語(yǔ)句有多少都要加 。這樣可以防止書寫失誤。6、 函數(shù)體的規(guī)模要小,盡量控制在50 行代碼之內(nèi)。7、盡可能在定義變量的同時(shí)初始化該變量(就近原則)。如果變量的引用處和其定義處相隔比較遠(yuǎn),變量的初始化很容易被忘記。如果引用了未被初始化的 變量,可能會(huì)導(dǎo)致程序錯(cuò)誤。本建議可以減少隱患。C語(yǔ)言命名規(guī)范例如int width = 10; /int height = 10; / int depth = 10; /8、代碼行內(nèi)的空格定義并初紿化width定義并初紿化height定義并初紿化depth、關(guān)鍵字之后要留空格。象co
17、n st、virtual 、inline 、case等關(guān)鍵字之后至少要留一個(gè)空格,否則無(wú)法辨析關(guān)鍵字。象if、for、while等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào)(,以突 出關(guān)鍵字。 、函數(shù)名之后不要留空格,緊跟左括號(hào)(,以與關(guān)鍵字區(qū)別。 、(向后緊跟,)、,、;向前緊跟,緊跟處不留空格。 、,之后要留空格,女口Function(x, y, z)。如果;不是一行的結(jié)束符號(hào),其后要留空格,女口 for (initialization; condition; update)。 、賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如=”、+=” =”、=”、+”、 *”、 &、“| ”、 ”這類操作符前后不加空格。對(duì)于表達(dá)式比較長(zhǎng)的for語(yǔ)句和if語(yǔ)句,為了緊湊起見(jiàn)可以適當(dāng)?shù)厝サ粢恍┛崭?,如for(i=0; i10
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工地勞務(wù)人員職業(yè)技能鑒定與認(rèn)證合同
- 2025年度插畫師藝術(shù)衍生品開發(fā)合同
- 貴州2025年貴州遵義師范學(xué)院招聘34人筆試歷年參考題庫(kù)附帶答案詳解
- 荊州2024年湖北洪湖市大學(xué)生鄉(xiāng)村醫(yī)生專項(xiàng)招聘33人筆試歷年參考題庫(kù)附帶答案詳解
- 白銀2025年甘肅白銀礦冶職業(yè)技術(shù)學(xué)院春季引進(jìn)博士研究生13人筆試歷年參考題庫(kù)附帶答案詳解
- 玉溪2025年云南玉溪市江川區(qū)審計(jì)局招聘公益性崗位工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 杭州浙江杭州電子科技大學(xué)信息技術(shù)中心招聘工作人員(勞務(wù)派遣)筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)塑底布鞋市場(chǎng)調(diào)查研究報(bào)告
- 廊坊2025年河北廊坊臨空經(jīng)濟(jì)區(qū)選調(diào)22人筆試歷年參考題庫(kù)附帶答案詳解
- 2025至2031年中國(guó)靜電粉末涂料行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024-2025銀行對(duì)公業(yè)務(wù)場(chǎng)景金融創(chuàng)新報(bào)告
- 《醫(yī)療機(jī)構(gòu)老年綜合評(píng)估規(guī)范(征求意見(jiàn)稿)》
- 2025屆鄭州市高三一診考試英語(yǔ)試卷含解析
- 2025年軍隊(duì)文職考試《公共科目》試題與參考答案
- 輔導(dǎo)員入職培訓(xùn)課件
- 中建雨季專項(xiàng)施工方案
- 《我國(guó)個(gè)人所得稅制下稅收征管問(wèn)題研究》
- 建筑工程三通一平技術(shù)方案
- 綠化養(yǎng)護(hù)工安全培訓(xùn)
- DB21-T 1720-2017海水源熱泵系統(tǒng)工程技術(shù)規(guī)程
- 組長(zhǎng)競(jìng)選課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論