中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
程序代碼編寫(xiě)規(guī)范

  

今天分享一篇程序編碼規(guī)范,希望對(duì)各位同行有幫助。

一、命名規(guī)

標(biāo)識(shí)符的名字應(yīng)當(dāng)直觀且可以拼讀,可望文生義,不必進(jìn)行“解碼”。最好采用英文單詞或其組合,便于記憶和閱讀。切忌使用漢語(yǔ)拼音來(lái)命名。程序中的英文單詞一般不要太復(fù)雜,用詞應(yīng)當(dāng)準(zhǔn)確。標(biāo)識(shí)符的長(zhǎng)度應(yīng)當(dāng)符合“min-length&max-information”原則。如果標(biāo)識(shí)符采用的英文單詞太長(zhǎng),幾個(gè)單詞組合后會(huì)更長(zhǎng),此時(shí)應(yīng)該采用一些通用而合理的縮寫(xiě)或者應(yīng)用領(lǐng)域?qū)I(yè)術(shù)語(yǔ)的縮寫(xiě)。例如:Program :<----> Pro Channel<---->CH Transponder<---->TP

程序中不要出現(xiàn)僅靠大小寫(xiě)來(lái)區(qū)分的相似標(biāo)識(shí)符。不要使程序中出現(xiàn)局部變量和全局變量同名的現(xiàn)象,盡管由于兩者的作用域不同而不會(huì)發(fā)生語(yǔ)法錯(cuò)誤,但會(huì)使人誤解。變量的名字應(yīng)當(dāng)使用“名詞”或者“形容詞+名詞”的格式來(lái)命名。例如:int ivalue; int ioldValue; int newValue;

全局函數(shù)的名字應(yīng)當(dāng)使用“動(dòng)詞”或者“動(dòng)詞+名詞”(動(dòng)賓詞組)。用正確的反義詞組命名具有相反意義的變量或相反動(dòng)作的函數(shù)等。例如:void SetValue(int iValue)

int GetValue(void)

盡量避免名字中出現(xiàn)數(shù)字編號(hào),如Value1、Value2等,除非邏輯上的確需要如此。類型名和函數(shù)名均以大寫(xiě)字母開(kāi)頭的單詞組合而成。變量名和參數(shù)名采用第一個(gè)單詞首字母小寫(xiě)而后面的單詞首字母大寫(xiě)的單詞組合。符號(hào)常量和宏名用全大寫(xiě)的單詞組合而成,并在單詞之間用單下劃線分隔,注意首尾最好不要使用下劃線。

二、語(yǔ)句編寫(xiě)規(guī)范

函數(shù)變量都應(yīng)該初始化。雖然C語(yǔ)言支持默認(rèn)類型為int,但都不要使用默認(rèn)數(shù)據(jù)類型。一定要明確指出函數(shù)每一個(gè)形參的類型和返回值類型。在使用運(yùn)算符&&的表達(dá)式中,要盡量把最有可能為false的子表達(dá)式放在&&的左邊;同樣在使用運(yùn)算符||的表達(dá)式中,要盡量把最有可能為TRUE的子表達(dá)式放在||的左邊。因?yàn)镃語(yǔ)言對(duì)邏輯表達(dá)式的判斷采取“突然死亡法”(猝死法):如果&&左邊的子表達(dá)式計(jì)算結(jié)果為FALSE,則整個(gè)表達(dá)式就為FALSE,后面的子表達(dá)式?jīng)]有必要再計(jì)算,如果||左邊的子表達(dá)式計(jì)算結(jié)果為TRUE,則整個(gè)表達(dá)式就為TRUE,因此后面的子表達(dá)式?jīng)]有必要再計(jì)算,這就可以提高程序的執(zhí)行效率。不要編寫(xiě)太復(fù)雜的復(fù)合表達(dá)式,應(yīng)該拆分為多個(gè)獨(dú)立的語(yǔ)句。在if/else結(jié)構(gòu)中,要盡量把為TRUE的概率較高的條件判斷置于前面,這樣可以提高該段程序的性能。switch沒(méi)有自動(dòng)跳出的功能,每個(gè)case子句的結(jié)尾不要忘了加上break,不要忘記最后那個(gè)default子句。即使程序真的不需要default處理,也應(yīng)該保留語(yǔ)句default:break;這樣做并非多此一舉,而是為了防止別人誤以為你忘了default處理,以及出于清晰性和對(duì)稱性的考慮。對(duì)于for循環(huán)語(yǔ)句,如果計(jì)數(shù)器從0開(kāi)始計(jì)數(shù),則建議for語(yǔ)句的循環(huán)控制變量的取值采用“前閉后開(kāi)區(qū)間”寫(xiě)法,要防止出現(xiàn)“差1”錯(cuò)誤。例如:for(x = 0; x < N; x++)

{

}

不要寫(xiě)成

for(x = 0; x < = N - 1; x++)

{

}

在多重嵌套的循環(huán)中,如果有可能,應(yīng)當(dāng)將最長(zhǎng)的循環(huán)放在最內(nèi)層,最短的循環(huán)放在最外層,這樣可以減少CPU跨切循環(huán)層的次數(shù),從而優(yōu)化程序的性能。如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很大,宜將邏輯判斷移到循環(huán)體的外面。盡量使用含義直觀的符號(hào)常量來(lái)表示那些將在程序中多次出現(xiàn)的數(shù)字或字符串。例如給界面中用到的一些位置常量等。需要對(duì)外公開(kāi)的常量放在頭文件中,不需要對(duì)外公開(kāi)的常量放在定義文件的頭部。為便于管理,可以把不同模塊的常量集中存放在一個(gè)公共的頭文件中。如果某一常量與其他常量密切相關(guān),應(yīng)在定義中包含這種關(guān)系,而不應(yīng)給出一個(gè)孤立的值。例如:const float RADIUS = 100;

const float DIAMETER = RADIUS*2

三、函數(shù)編寫(xiě)規(guī)范

在你需要某種功能的函數(shù)時(shí),首先查看現(xiàn)有的庫(kù)中是否提供了類似的函數(shù)。不要編寫(xiě)函數(shù)庫(kù)中已有的函數(shù),不僅因?yàn)檫@種是重復(fù)勞動(dòng),而且自制的函數(shù)在各個(gè)質(zhì)量屬性方面一般都不如對(duì)應(yīng)的庫(kù)函數(shù)。庫(kù)函數(shù)是經(jīng)過(guò)嚴(yán)格測(cè)試和實(shí)踐檢驗(yàn)的。應(yīng)當(dāng)在函數(shù)原型中寫(xiě)出形參名稱,雖然編譯器會(huì)忽略它。這樣做的目的是使函數(shù)具有“自說(shuō)明”和“自編檔”能力。不要在函數(shù)體內(nèi)定義與形參同名的局部變量,否則會(huì)遮蔽形參。如果函數(shù)沒(méi)有參數(shù),那么使用void而不要空著,這是因?yàn)闃?biāo)準(zhǔn)C把空的參數(shù)列表解釋為可以接受任何類型和個(gè)數(shù)的參數(shù)。參數(shù)命名要恰當(dāng),輸入?yún)?shù)和輸出參數(shù)的順序要合理。例如:void StringCopy(char *str1, char *str2);

應(yīng)改為

void StringCopy(char *strDestination, char *strSource);

如果參數(shù)是指針,且僅做輸入用,則應(yīng)在類型前加const,以防止該指針指向的內(nèi)存單元在函數(shù)體內(nèi)被無(wú)意中修改。應(yīng)避免函數(shù)有太多的參數(shù),參數(shù)個(gè)數(shù)盡量控制在5個(gè)以內(nèi)。如果參數(shù)太多,在使用時(shí)容易將參數(shù)糊弄和順序搞錯(cuò)。盡量不要使用類型和數(shù)目不確定的參數(shù)列表。這種風(fēng)格的函數(shù)在編譯時(shí)喪失了嚴(yán)格的靜態(tài)類型安全檢查。不要省略返回值的類型。如果函數(shù)沒(méi)有返回值,應(yīng)聲明為VOID類型。函數(shù)名字與返回值類型在語(yǔ)義上不可沖突。例如:int getchar(void); 應(yīng)改為 char getchar(void);

在函數(shù)體的“入口處”,對(duì)參數(shù)的有效性進(jìn)行檢查。在函數(shù)體的“出口處”,對(duì)return語(yǔ)句的正確性和效率進(jìn)行檢查。函數(shù)的功能要單一,即一個(gè)函數(shù)只完成一件事情,不要設(shè)計(jì)多用途的函數(shù),函數(shù)體的規(guī)模要小,盡量控制在50行代碼之內(nèi)。不僅要檢查輸入?yún)?shù)的有效性,還要檢查通過(guò)其他途徑進(jìn)入函數(shù)體內(nèi)的變量的有效性,例如全局變量、文件句柄等。用于出錯(cuò)處理的返回值一定要清楚,讓使用者不容易忽視或誤解錯(cuò)誤情況。盡量避免函數(shù)帶有“記憶”功能。相同的輸入應(yīng)當(dāng)產(chǎn)生相同的輸出。帶有“記憶”功能的函數(shù),其行為可能是不可預(yù)測(cè)的,因?yàn)樗男袨榭赡苋Q于某種“記憶狀態(tài)”。這樣的函數(shù)既不易理解又不利于測(cè)試和維護(hù)。函數(shù)的static局部變量是函數(shù)的“記憶”存儲(chǔ)器。建議盡量少用static局部變量,除非必需。如果輸入?yún)?shù)采用“指針傳遞”,那么加const修飾可以防止意外地改動(dòng)該指針指向的內(nèi)存單元,起到保護(hù)的作用。

四、指針 數(shù)組和字符串編寫(xiě)規(guī)范

不管指針變量是全局的還是局部的、靜態(tài)的還是非靜態(tài)的,應(yīng)當(dāng)在聲明它的同時(shí)初始化它,要么賦予NULL.當(dāng)把“&”用于指針時(shí),就是在提取變量的地址。不能在一個(gè)指針前面連續(xù)使用多個(gè)“&”。

五、高級(jí)數(shù)據(jù)類型

41.在設(shè)計(jì)位域的時(shí)候,最好不要讓一個(gè)位域成員跨越一個(gè)不完整的字節(jié)來(lái)存放,因?yàn)檫@樣會(huì)增加計(jì)算機(jī)運(yùn)算的開(kāi)銷。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
編程規(guī)范
Java基礎(chǔ)語(yǔ)法(總結(jié)篇)
VFP編程規(guī)范A
C++編碼規(guī)范與指導(dǎo)
C語(yǔ)言學(xué)習(xí)之基礎(chǔ)知識(shí)點(diǎn)—指針!上萬(wàn)字的干貨知識(shí)
超炫酷技巧!C語(yǔ)言代碼優(yōu)化的技巧
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服