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

正文內(nèi)容

高質(zhì)量cc編程(更新版)

2025-09-04 03:43上一頁面

下一頁面
  

【正文】 【規(guī)則 511】盡量使用含義直觀的常量來表示那些將在程序中多次出現(xiàn)的數(shù)字或字符串。所以我們主張少用、慎用 goto 語句,而不是禁用。String s1, s2。} l l 【規(guī)則 461】每個 case 語句的結(jié)尾不要忘了加 break,否則將導(dǎo)致多個分支重疊(除非有意使多個分支重疊)。 x++){…}for (int x=0。 i++) DoOtherthing()。 iN。 row100。 for (row=0。改寫為 if (condition) { return x。 指針變量與零值比較l l 【規(guī)則 434】應(yīng)當將指針變量用“==” 或“!=”與 NULL 比較。例如 Visual C++ 將 TRUE 定義為 1,而 Visual Basic 則將 TRUE 定義為1。 l l 【規(guī)則 423】不要把程序中的復(fù)合表達式與“真正的數(shù)學(xué)表達式” 混淆。 c d amp。amp。 優(yōu)先級 運算符 結(jié)合律( ) [ ] . 從左至右! ~ ++ (類型) sizeof+ * amp。} l l 【規(guī)則 327】為了防止某一軟件庫中的一些標識符和其它軟件庫中的沖突,可以為各種標識符加上能反映軟件性質(zhì)的前綴。 28 / 127l l 【規(guī)則 324】靜態(tài)變量加前綴 s_(表示 static)。 // 類名 void Draw(void)。 178。類的成員函數(shù)應(yīng)當只使用“動詞”,被省略掉的名詞就是對象本身。 // 變量 x 與 X 容易混淆void foo(int x)。那么名字是否越長約好?不見得! 例如變量名 maxval 就比 maxValueUntilOverflow 好用。切忌使用漢語拼音來命名。倘若采用“匈牙利”命名規(guī)則,則應(yīng)當寫成int iI, iJ, ik。void Func2(void)。很多 C++教課書受到 Biarne Stroustrup 第一本著作的影響,不知不覺地采用了 “以數(shù)據(jù)為中心”的書寫方式,并不見得有多少道理。l l 【規(guī)則 278】當代碼比較長,特別是有多重嵌套時,應(yīng)當在一些段落的結(jié)束處加注釋,便于閱讀。否則多此一舉,令人厭煩。C++語言中,程序塊的注釋常采用“/*…*/”,行注釋一般采用“//…”。若將修飾符 * 靠近數(shù)據(jù)類型,例如:int* x。 (very_longer_variable3 = very_longer_variable14)amp。 update){… // program code}for (initialization。 // 不要寫成 a . Function()。 // 良好的風(fēng)格x=ab?a:b。amp。 i10。amp。l l 【規(guī)則 233】‘(’ 向后緊跟, ‘)’ 、‘,’、‘。本建議可以減少隱患。 condition。 y = c + d。 int width。 } else { statement3。 空行空行起著分隔程序段落的作用。15 / 127如果某些頭文件是私有的,它不會被用戶的程序直接引用,則沒有必要公開其“聲明” 。這里對頭文件的作用略作解釋:(1 )通過頭文件來調(diào)用庫功能。 ifndef GRAPHICS_H // 防止 被重復(fù)引用define GRAPHICS_H include // 引用標準庫的頭文件…13 / 127include “” // 引用非標準庫的頭文件…void Function1(…)。 178。 /** Copyright (c) 2022,上海貝爾有限公司網(wǎng)絡(luò)應(yīng)用事業(yè)部* All rights reserved.* * 文件名稱:* 文件標識: 見配置管理計劃書* 摘 要: 簡要描述本文件的內(nèi)容* * 當前版本:* 作 者: 輸入作者(或修改者)名字* 完成日期:2022 年 7 月 20 日** 取代版本: * 原作者 : 輸入原作者(或修改者)名字* 完成日期:2022 年 5 月 10 日*/12 / 127 示例 11 版權(quán)和版本的聲明 頭文件的結(jié)構(gòu)頭文件由三部分內(nèi)容組成:(1 )頭文件開頭處的版權(quán)和版本聲明(參見示例 11)。 林銳,2022 年 7 月 11 / 127第 1 章文件結(jié)構(gòu)每個 C++/C 程序通常分為兩個文件。編程的好經(jīng)驗應(yīng)該大家共享,我們自己也是這么學(xué)來的。有一位同事看了第七章后覺得“野指針” 寫得不錯,與我切磋了一把。別小看了,提高質(zhì)量就是要從這些點點滴滴做起。如果你還沒有找到合適的工作單位,不妨到上海貝爾試一試。因為發(fā)現(xiàn)自己連編程基本技能都未能全面掌握,頂多算是二流水平,還好意思談什么老手和高手。競爭對手公司的朋友們也做過試驗,同樣一敗涂地。“高質(zhì)量 ”可不是干活小心點就能實現(xiàn)的! 我們有充分的理由疑慮:(1 )編程老手可能會長期用隱含錯誤的方式編程(習(xí)慣成自然),發(fā)現(xiàn)毛病后都不愿相信那是真的?。?)編程高手可以在某一領(lǐng)域?qū)懗鰳O有水平的代碼,但未必能從全局把握軟件質(zhì)量的方方面面。7 / 127 我把反省后的心得體會寫成文章放在網(wǎng)上傳閱,引起了不少軟件開發(fā)人員的共鳴。博士畢業(yè)前半年,我曾到微軟中國研究院找工作,接受微軟公司一位資深軟件工程師的面試。在 1995 年開發(fā)的一套圖形軟件庫到 2022 年還有人買。(10) (10)真正的程序員不會在上午 9:00 到下午 5:00 之間工作,如果你看到他在上午 9:00 工作,這表明他從昨晚一直干到現(xiàn)在。(2) (2) 真正的程序員不寫使用說明書,用戶應(yīng)當自己去猜想程序的功能。如今在 Inter 上流傳的“ 真正”的程序員據(jù)說是這樣的:(1) (1) 真正的程序員沒有進度表,只有討好領(lǐng)導(dǎo)的馬屁精才有進度表,真正的程序員會讓領(lǐng)導(dǎo)提心吊膽。(9) (9) 真正的程序員的程序不會在第一次就正確運行,但是他們愿意守著機器進行若干個 30 小時的調(diào)試改錯。這些軟件頻頻獲獎,有一個軟件獲得首屆中國大學(xué)生電腦大賽軟件展示一等獎。補修“內(nèi)功 ”之后,又覺得腰板硬了起來。我又好好地反省了一次。試問有多少軟件開發(fā)人員對正確性、健壯性、可靠性、效率、易用性、可讀性(可理解性)、可擴展性、可復(fù)用性、兼容性、可移植性等質(zhì)量屬性了如指掌?并且能在實踐中運用自如?。結(jié)果沒有一個人及格,有半數(shù)人得零分。 在寫此書前,我閱讀了不少程序設(shè)計方面的英文著作,越看越羞慚。(2)如果你考及格了,表明你的技術(shù)基礎(chǔ)不錯,希望你能虛心學(xué)習(xí)、不斷進步。難度不高,但是細節(jié)比較多。特別是第七章“內(nèi)存管理”,讀了并不表示懂了,懂了并不表示就能正確使用。 由于 C++/C 編程是眾所周知的技術(shù),沒有秘密可言。 歡迎讀者對本書提出批評建議。(4)版本歷史信息。178。 // 版權(quán)和版本聲明見示例 11,此處省略。 include “” // 引用頭文件… // 全局函數(shù)的實現(xiàn)體void Function1(…){…} // 類成員函數(shù)的實現(xiàn)體void Box::Draw(…){…}示例 13 C++/C 定義文件的結(jié)構(gòu) 頭文件的作用早期的編程語言如 Basic、Fortran 沒有頭文件的概念,C++/C 語言的初學(xué)者雖然會用使用頭文件,但常常不明其理。例如可將頭文件保存于 include 目錄,將定義文件保存于 source 目錄(可以是多級目錄)。請程序員們學(xué)習(xí)程序的“書法 ”,彌補大學(xué)計算機教育的漏洞,實在很有必要。 // 空行 if (condition) { statement2。 示例 22(a)為風(fēng)格良好的代碼行,示例 22(b)為風(fēng)格不良的代碼行。X = a + b。}for (initialization。如果引用了未被初始化的變量,可能會導(dǎo)致程序錯誤。l l 【規(guī)則 232】函數(shù)名之后不要留空格,緊跟左括號‘(’,以與關(guān)鍵字區(qū)別。l l 【規(guī)則 235】賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如 “=”、“+=”“=”、“=”、“+”、“*”、“%”、“amp。 【建議 231】對于表達式比較長的 for 語句和 if 語句,為了緊湊起見可以適當?shù)厝サ粢恍┛崭?,如for (i=0。 (c=d)) // 良好的風(fēng)格if(a=bamp。 i ++) // 過多的空格x = a b ? a : b。()。 condition。amp。}示例 25 長行的拆分 修飾符的位置修飾符 * 和&應(yīng)該靠近數(shù)據(jù)類型還是該靠近變量名,是個有爭議的活題。 // 此處 y 不會被誤解為指針 注釋C 語言的注釋符為“/*…*/”。l l 【規(guī)則 272】如果代碼本來就是清楚的,則不必加注釋。l l 【規(guī)則 276】注釋的位置應(yīng)與被描述的代碼相鄰,可以放在代碼的上方或右方,不可放在下方。(2)將 public 類型的函數(shù)寫在前面,而將 private 類型的數(shù)據(jù)寫在后面,如示例 (b )采用這種版式的程序員主張類的設(shè)計“以行為為中心 ”,重點關(guān)注的是類應(yīng)該提供什么樣的接口(或服務(wù))?!瓆class A{ public:void Func1(void)。 float x, y, z。標識符最好采用英文單詞或其組合,便于記憶和閱讀。一般來說,長名字能更好地表達含義,所以函數(shù)名、變量名、類名長達十幾個字符不足為怪。例如:int x, X。 l l 【規(guī)則 317】全局函數(shù)的名字應(yīng)當使用“ 動詞”或者“動詞+名詞” (動賓詞組)。int GetValue(…)。 // 類名 class LeafNode。 const int MAX_LENGTH = 100。m_height = height。注意一元運算符 + * 的優(yōu)先級高于對應(yīng)的二元運算符。例如:word = (high 8) | lowif ((a | b) amp。amp。d = a + r。TRUE的值究竟是什么并沒有統(tǒng)一的標準。 (x=EPSINON))其中 EPSINON 是允許的誤差(即精度)。 return y。例如示例 44(b)的效率比示例 44(a)的高。 col++ ){for (row=0。 for (i=0。 iN。 xN。 … default : … break。它可能跳過了某些對象的構(gòu)造、變量的初始化、重要的計算等語句,例如:goto state。 } } } error: …就象樓房著火了,來不及從樓梯一級一級往下走,可從窗口跳出火坑。(3) (3) 如果要修改數(shù)字或字符串,則會在很多地方改動,既麻煩又容易出錯。(2) (2 ) 有些集成化的調(diào)試工具可以對 const 常量進行調(diào)試,但是不能對宏常量進行調(diào)試。由于define 定義的宏常量是全局的,不能達到目的,于是想當然地覺得應(yīng)該用 const 修飾數(shù)據(jù)成員來實現(xiàn)。 const 數(shù)據(jù)成員的初始化只能在類構(gòu)造函數(shù)的初始化表中進行,例如 class A {… A(int size)。 int array2[SIZE2]。C 語言中,函數(shù)的參數(shù)和返回值的傳遞方式有兩種:值傳遞(pass by value)和指針傳遞(pass by pointer)。 // 良好的風(fēng)格float GetValue()。一般地,應(yīng)將目的參數(shù)放在前面,源參數(shù)放在后面。 178。這種風(fēng)格的函數(shù)在編譯時喪失了嚴格的類型安全檢查。違反這條規(guī)則的典型代表是 C 標準庫函數(shù) getchar?;仡櫳侠?,C 標準庫函數(shù)的設(shè)計者為什么要將 getchar 聲明為令人迷糊的 int 類型呢?他會那么傻嗎?在正常情況下,getchar 的確返回單個字符。雖然 gechar 比 GetChar 靈活,例如 putchar(getchar())。 178。s1, const String amp。 m_data = new char[strlen()+1]。 // 如果用“值傳
點擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1