freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

高質(zhì)量程序設(shè)計(jì)指南(編輯修改稿)

2025-08-26 03:54 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 61】例如:char *name。和 & 緊靠變量名int *x, y。 // 此處 y 不會(huì)被誤解為指針 注釋C 語(yǔ)言的注釋符為“/*… */”。C++語(yǔ)言中,程序塊的注釋常采用“/*… */”,行注釋 一般采用“//… ”。注釋通常用于:(1)版本、版權(quán)聲明;(2)函數(shù)接口說(shuō)明;(3)重要的代碼行或段落提示。 雖然注釋有助于理解代碼,但注意不可過(guò)多地使用注釋。參見示例 2 6。? 【規(guī)則 271】注釋是對(duì)代碼的“提示”,而不是文檔。程序中的注釋不可喧賓奪主, 注釋太多了會(huì)讓人眼花繚亂。注釋的花樣要少。? 【規(guī)則 272】如果代碼本來(lái)就是清楚的,則不必加注釋。否則多此一舉,令人厭煩。 例如i++。 // i 加 1,多余的注釋? 【規(guī)則 273】邊寫代碼邊注釋,修改代碼同時(shí)修改相應(yīng)的注釋,以保證注釋與代碼 的一致性。不再有用的注釋要?jiǎng)h除。? 【規(guī)則 274】注釋應(yīng)當(dāng)準(zhǔn)確、易懂,防止注釋有二義性。錯(cuò)誤的注釋不但無(wú)益反而 有害。? 【規(guī)則 275】 盡量避免在注釋中使用縮寫,特別是不常用縮寫。? 【規(guī)則 276】注釋的位置應(yīng)與被描述的代碼相鄰,可以放在代碼的上方或右方,不 可放在下方。? 【規(guī)則 278】當(dāng)代碼比較長(zhǎng),特別是有多重嵌套時(shí),應(yīng)當(dāng)在一些段落的結(jié)束處加注 釋,便于閱讀。/** 函數(shù)介紹:* 輸入?yún)?shù):* 輸出參數(shù):* 返回值 :*/void Function(float x, float y, float z){…}if (…) {…while (…){…} // end of while…} // end of if示例 26 程序的注釋 類的版式類可以將數(shù)據(jù)和函數(shù)封裝在一起,其中函數(shù)表示了類的行為(或稱服務(wù))。類提供關(guān)、protected 和private鍵字 public ,分別用于聲明哪些數(shù)據(jù)和函數(shù)是公有的、受保護(hù)的或者是私有的。這樣可以達(dá)到信息隱藏的目的,即讓類僅僅公開必須要讓外界知道的內(nèi) 容,而隱藏其它一切內(nèi)容。我們不可以濫用類的封裝功能,不要把它當(dāng)成火鍋,什么東 西都往里扔。類的版式主要有兩種方式:(1)將 private 類型的數(shù)據(jù)寫在前面,而將 public 類型的函數(shù)寫在后面,如示例 83(a)。 采用這種版式的程序員主張類的設(shè)計(jì)“以數(shù)據(jù)為中心”,重點(diǎn)關(guān)注類的內(nèi)部結(jié)構(gòu)。(2)將 public 類型的函數(shù)寫在前面,而將 private 類型的數(shù)據(jù)寫在后面,如示例 8. 3(b) 采用這種版式的程序員主張類的設(shè)計(jì)“以行為為中心”,重點(diǎn)關(guān)注的是類應(yīng)該提供什么樣 的接口(或服務(wù))。很多 C++ 教課書受到 Biarne Stroustrup 第一本著作的影響,不知不覺(jué)地采用了“以 數(shù)據(jù)為中心”的書寫方式,并不見得有多少道理。我建議讀者采用“以行為為中心”的書寫方式,即首先考慮類應(yīng)該提供什么樣的函 數(shù)。這是很多人的經(jīng)驗(yàn)——“這樣做不僅讓自己在設(shè)計(jì)類時(shí)思路清晰,而且方便別人閱 讀。因?yàn)橛脩糇铌P(guān)心的是接口,誰(shuí)愿意先看到一堆私有數(shù)據(jù)成員!”class A{private:int i, j。 float x, y。…public:void Func1(void)。 void Func2(void)?!瓆class A{public:void Func1(void)。 void Func2(void)。…private:int i, j。 float x, y?!瓆示例 (a) 以數(shù)據(jù)為中心版式 示例 (b) 以行為為中心的版式第 3 章 命名規(guī)則比較著名的命名規(guī)則當(dāng)推 Microsoft 公司的“匈牙利”法,該命名規(guī)則的主要思想 是“在變量和函數(shù)名中加入前綴以增進(jìn)人們對(duì)程序的理解”。例如所有的字符變量均以 ch 為前綴,若是指針變量則追加前綴 p。如果一個(gè)變量由 ppch 開頭,則表明它是指向字 符指針的指針?!靶傺览狈ㄗ畲蟮娜秉c(diǎn)是煩瑣,例如 int i, j, k。float x, y, z。 倘若采用“匈牙利”命名規(guī)則,則應(yīng)當(dāng)寫成int iI, iJ, ik。 // 前綴 i 表示 int 類型 float fX, fY, fZ。 // 前綴 f 表示 float 類型如此煩瑣的程序會(huì)讓絕大多數(shù)程序員無(wú)法忍受。 據(jù)考察,沒(méi)有一種命名規(guī)則可以讓所有的程序員贊同,程序設(shè)計(jì)教科書一般都不指定命名規(guī)則。命名規(guī)則對(duì)軟件產(chǎn)品而言并不是“成敗悠關(guān)”的事,我們不要化太多精力 試圖發(fā)明世界上最好的命名規(guī)則,而應(yīng)當(dāng)制定一種令大多數(shù)項(xiàng)目成員滿意的命名規(guī)則, 并在項(xiàng)目中貫徹實(shí)施。 共性規(guī)則本節(jié)論述的共性規(guī)則是被大多數(shù)程序員采納的,我們應(yīng)當(dāng)在遵循這些共性規(guī)則的前 提下,再擴(kuò)充特定的規(guī)則,如 節(jié)。? 【規(guī)則 311】 標(biāo)識(shí)符應(yīng)當(dāng)直觀且可以拼讀,可望文知意,不必進(jìn)行“解碼”。 標(biāo)識(shí)符最好采用英文單詞或其組合,便于記憶和閱讀。切忌使用漢語(yǔ)拼音來(lái)命名。程序中的英文單詞一般不會(huì)太復(fù)雜,用詞應(yīng)當(dāng)準(zhǔn)確。例如不要把 CurrentValue 寫成 NowValue 。? 【規(guī)則 312】 標(biāo)識(shí)符的長(zhǎng)度應(yīng)當(dāng)符合“minlength amp。amp。 maxinformation”原則。 幾十年前老 ANSI C 規(guī)定名字不準(zhǔn)超過(guò) 6 個(gè)字符,現(xiàn)今的 C++/C 不再有此限制。一 般來(lái)說(shuō),長(zhǎng)名字能更好地表達(dá)含義,所以函數(shù)名、變量名、類名長(zhǎng)達(dá)十幾個(gè)字符不足為 怪。那么名字是否越長(zhǎng)約好?不見得! 例如變量名 maxval 就比 maxValueUntilOverflow 好用。單字符的名字也是有用的,常見的如 i,j,k,m,n,x,y,z 等,它們通??捎米骱瘮?shù)內(nèi)的局部變量。? 【規(guī)則 313】 命名規(guī)則盡量與所采用的操作系統(tǒng)或開發(fā)工具的風(fēng)格保持一致。 例如 Windows 應(yīng)用程序的標(biāo)識(shí)符通常采用“大小寫”混排的方式,如 AddChild。而 Unix 應(yīng)用程序的標(biāo)識(shí)符通常采用“小寫加下劃線”的方式,如 add_child。別把這兩類風(fēng)格混在一起用。? 【規(guī)則 314】 程序中不要出現(xiàn)僅靠大小寫區(qū)分的相似的標(biāo)識(shí)符。 例如:int x, X。 // 變量 x 與 X 容易混淆 void foo(int x)。 // 函數(shù) foo 與 FOO 容易混淆 void FOO(float x)。? 【規(guī)則 315】程序中不要出現(xiàn)標(biāo)識(shí)符完全相同的局部變量和全局變量,盡管兩者的 作用域不同而不會(huì)發(fā)生語(yǔ)法錯(cuò)誤,但會(huì)使人誤解。? 【規(guī)則 316】 變量的名字應(yīng)當(dāng)使用“名詞”或者“形容詞+名詞”。 例如:float value。 float oldValue。 float newValue。? 【規(guī)則 317】 全局函數(shù)的名字應(yīng)當(dāng)使用“動(dòng)詞”或者“動(dòng)詞+名詞”(動(dòng)賓詞組)。 類的成員函數(shù)應(yīng)當(dāng)只使用“動(dòng)詞”,被省略掉的名詞就是對(duì)象本身。例如:DrawBox()。 // 全局函數(shù)boxDraw()。 // 類的成員函數(shù)? 【規(guī)則 318】 用正確的反義詞組命名具有互斥意義的變量或相反動(dòng)作的函數(shù)等。 例如:int minValue。 int maxValue。int SetValue(… )。 int GetValue(… )。 【建議 311】盡量避免名字中出現(xiàn)數(shù)字編號(hào),如 Value1,Value2 等,除非邏輯上的 確需要編號(hào)。這是為了防止程序員偷懶,不肯為命名動(dòng)腦筋而導(dǎo)致產(chǎn)生無(wú)意義的名 字(因?yàn)橛脭?shù)字編號(hào)最省事)。 簡(jiǎn)單的 Windows 應(yīng)用程序命名規(guī)則作者對(duì)“匈牙利”命名規(guī)則做了合理的簡(jiǎn)化,下述的命名規(guī)則簡(jiǎn)單易用,比較適合 于 Windows 應(yīng)用軟件的開發(fā)。? 【規(guī)則 321】 類名和函數(shù)名用大寫字母開頭的單詞組合而成。 例如:class Node。 // 類名class LeafNode。 // 類名void Draw(void)。 // 函數(shù)名 void SetValue(int value)。 // 函數(shù)名? 【規(guī)則 322】 變量和參數(shù)用小寫字母開頭的單詞組合而成。 例如:BOOL flag。 int drawMode。? 【規(guī)則 323】 常量全用大寫的字母,用下劃線分割單詞。 例如:const int MAX = 100。const int MAX_LENGTH = 100。? 【規(guī)則 324】 靜態(tài)變量加前綴 s_(表示 static)。 例如:void Init(…){static int s_initValue。 // 靜態(tài)變量…}? 【規(guī)則 325】 如果不得已需要全局變量,則使全局變量加前綴 g_(表示 global )。 例如:int g_howManyPeople。 // 全局變量int g_howMuchMoney。 // 全局變量? 【規(guī)則 326】類的數(shù)據(jù)成員加前綴 m_(表示 member),這樣可以避免數(shù)據(jù)成員與 成員函數(shù)的參數(shù)同名。例如:void Object::SetValue(int width, int height){ m_width = width。 m_height = height。}? 【規(guī)則 327】為了防止某一軟件庫(kù)中的一些標(biāo)識(shí)符和其它軟件庫(kù)中的沖突,可以為 各種標(biāo)識(shí)符加上能反映軟件性質(zhì)的前綴。例如三維圖形標(biāo)準(zhǔn) OpenGL 的所有庫(kù)函數(shù) 均以 gl 開頭,所有常量(或宏定義)均以 GL 開頭。 簡(jiǎn)單的 Unix 應(yīng)用程序命名規(guī)則第 4 章 表達(dá)式和基本語(yǔ)句讀者可能懷疑:連 if、for、while、goto、switch 這樣簡(jiǎn)單的東西也要探討編程風(fēng) 格,是不是小題大做?我真的發(fā)覺(jué)很多程序員用隱含錯(cuò)誤的方式寫表達(dá)式和基本語(yǔ)句,我自己也犯過(guò)類似 的錯(cuò)誤。表達(dá)式和語(yǔ)句都屬于 C++/C 的短語(yǔ)結(jié)構(gòu)語(yǔ)法。它們看似簡(jiǎn)單,但使用時(shí)隱患比較多。 本章歸納了正確使用表達(dá)式和語(yǔ)句的一些規(guī)則與建議。 運(yùn)算符的優(yōu)先級(jí)C++/C 語(yǔ)言的運(yùn)算符有數(shù)十個(gè),運(yùn)算符的優(yōu)先級(jí)與結(jié)合律如表 41 所示。注意一元 運(yùn)算符 + * 的優(yōu)先級(jí)高于對(duì)應(yīng)的二元運(yùn)算符。優(yōu)先級(jí)運(yùn)算符結(jié)合律從 高 到 低 排 列( ) [ ] .從左至右! ~ ++ (類型) sizeof+ * amp。從右至左* / %從左至右+ 從左至右 從左至右 = =從左至右== !=從左至右amp。從左至右^從左至右|從左至右amp。amp。從左至右||從右至左?:從右至左= += = *= /= %= amp。= ^=|= = =從左至右表 41 運(yùn)算符的優(yōu)先級(jí)與結(jié)合律? 【規(guī)則 411】如果代碼行中的運(yùn)算符比較多,用括號(hào)確定表達(dá)式的操作順序,避免 使用默認(rèn)的優(yōu)先級(jí)。由于將表 41 熟記是比較困難的,為了防止產(chǎn)生歧義并提高可讀性,應(yīng)當(dāng) 用括號(hào)確 定表達(dá)式的操作順序。例如:word = (high 8) | lowif ((a | b) amp。amp。 (a amp。 c)) 復(fù)合表達(dá)式如 a = b = c = 0 這樣的表達(dá)式稱為復(fù)合表達(dá)式。允許復(fù)合表達(dá)式存在的理由是:(1) 書寫簡(jiǎn)潔;(2)可以提高編譯效率。但要防止濫用復(fù)合表達(dá)式。? 【規(guī)則 421】 不要編寫太復(fù)雜的復(fù)合表達(dá)式。 例如:i = a = b amp。amp。 c d amp。amp。 c + f = g + h 。 // 復(fù)合表達(dá)式過(guò)于復(fù)雜? 【規(guī)則 422】 不要有多用途的復(fù)合表達(dá)式。 例如:d = (a = b + c) + r 。該表達(dá)式既求 a 值又求 d 值。應(yīng)該拆分為兩個(gè)獨(dú)立的語(yǔ)句: a = b + c。d = a + r。? 【規(guī)則 423】 不要把程序中的復(fù)合表達(dá)式與“真正的數(shù)學(xué)表達(dá)式”混淆。 例如:if (a b c) // a b c 是數(shù)學(xué)表達(dá)式而不是程序表達(dá)式 并不表示if ((ab) amp。amp。 (bc)) 而是成了令人費(fèi)解的if ( (ab)c ) if 語(yǔ)句if 語(yǔ)句是 C++/C 語(yǔ)言中最簡(jiǎn)單、最常用的語(yǔ)句,然而很多程序員用隱含錯(cuò)誤的方式 寫 if 語(yǔ)句。本節(jié)以“與零值比較”為例,展開討論。 布爾變量與零值比較? 【規(guī)則 431】 不可將布爾變量直接與 TRUE、FALSE 或者 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,它與零值比較的標(biāo)準(zhǔn) if 語(yǔ)句如下: if (flag) // 表示 flag 為真表示 flag 為假if (!flag) // 其它的用法都屬于不良風(fēng)格,例如:if (flag == TRUE) if (flag == 1 )if (flag == FALSE) if (flag == 0). 2 整型變量與零值比較? 【規(guī)則 432】 應(yīng)當(dāng)將整型變量用“==”或“!=”直接與 0 比較。
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1