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

正文內(nèi)容

高質(zhì)量cc編程指南,個人覺得很經(jīng)典來源:江西財經(jīng)大學(xué)1(存儲版)

2025-07-27 01:56上一頁面

下一頁面
  

【正文】 。 row++){ sum = sum + a[row][col]。 i++){if (condition) DoSomething()。}表44(c) 效率低但程序簡潔 表44(d) 效率高但程序不簡潔 for 語句的循環(huán)控制變量l 【規(guī)則451】不可在for 循環(huán)體內(nèi)修改循環(huán)變量,防止for 循環(huán)失去控制。 x=N1。l 【規(guī)則462】不要忘記最后那個default分支。 // 被goto跳過int sum = 0。第5章 常量 常量是一種標識符,它的值在運行期間恒定不變。例如: define MAX 100 /* C語言的宏常量 */ const int MAX = 100。 常量定義規(guī)則l 【規(guī)則531】需要對外公開的常量放在頭文件中,不需要對外公開的常量放在定義文件的頭部。const數(shù)據(jù)成員只在某個對象生存期內(nèi)是常量,而對于整個類而言卻是可變的,因為類可以創(chuàng)建多個對象,不同的對象其const數(shù)據(jù)成員的值可以不同。 }。 枚舉常量不會占用對象的存儲空間,它們在編譯時被全部求值。由于引用傳遞的性質(zhì)象指針傳遞,而使用方式卻象值傳遞,初學(xué)者常常迷惑不解,容易引起混亂,“引用與指針的比較”。例如編寫字符串拷貝函數(shù)StringCopy,它有兩個參數(shù)。別人在使用時可能會不假思索地寫成如下形式:char str[20]。如果參數(shù)太多,在使用時容易將參數(shù)類型或順序搞錯。C++語言有很嚴格的類型安全檢查,不允許上述情況發(fā)生。但不幸的是getchar的確不是char類型,而是int類型,其原型如下: int getchar(void)。我們在實際工作中,經(jīng)常會碰到上述令人為難的問題。strcpy函數(shù)將strSrc拷貝至輸出參數(shù)strDest中,同時函數(shù)的返回值又是strDest。other)。other) return *this。 … a = b。 strcat(, )。但根據(jù)經(jīng)驗,我們可以在函數(shù)體的“入口處”和“出口處”從嚴把關(guān),從而提高函數(shù)的質(zhì)量。注意事項如下:(1)return語句不可返回指向“棧內(nèi)存”的“指針”或者“引用”,因為該內(nèi)存在函數(shù)體結(jié)束時被自動銷毀。return temp。 其它建議178。這樣的函數(shù)既不易理解又不利于測試和維護。斷言assert是僅在Debug版本起作用的宏,它用于檢查“不應(yīng)該”發(fā)生的情況。 // 防止改變pvFrom的地址 while(size 0 ) *pbTo ++ = *pbFrom ++ 。你化了很多時間,不是為了排除錯誤,而只是為了弄清楚這個錯誤到底是什么。[Maguire, p8p30]l 【規(guī)則651】使用斷言捕捉不應(yīng)該發(fā)生的非法情況。 int m。(2)不能有NULL引用,引用必須與合法的存儲單元關(guān)聯(lián)(指針則可以是NULL)。k = i。 void Func1(int x){ x = x + 10。 Func2(amp。 Func3(n)。偉大的Bill Gates 曾經(jīng)失言:640K ought to be enough for everybody — Bill Gates 1981程序員們經(jīng)常編寫內(nèi)存管理程序,往往提心吊膽。棧內(nèi)存分配運算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。常見的內(nèi)存錯誤及其對策如下:u 內(nèi)存分配未成功,卻使用了它。所以無論用何種方式創(chuàng)建數(shù)組,都別忘了賦初值,即便是賦零值也不可省略,不要嫌麻煩。犯這種錯誤主要有兩個起因:一是沒有初始化的觀念;二是誤以為內(nèi)存的缺省初值全為零,導(dǎo)致引用初值錯誤(例如數(shù)組)。而這些錯誤大多沒有明顯的癥狀,時隱時現(xiàn),增加了改錯的難度。(2) 在棧上創(chuàng)建。比如說,某人需要一份證明,本來在文件上蓋上公章的印子就行了,如果把取公章的鑰匙交給他,那么他就獲得了不該有的權(quán)利。x){ x = x + 10。 void Func2(int *x){ (* x) = (* x) + 10。 以下是“值傳遞”的示例程序。 int j = 6。所以n既不是m的拷貝,也不是指向m的指針,其實n就是m它自己。 引用與指針的比較引用是C++中的概念,初學(xué)者容易把引用和指針混淆一起。但危險到底是什么?樹要倒?有廢井?有野獸?除非告訴人們“危險”是什么,否則這個警告牌難以起到積極有效的作用。如果程序在assert處終止了,并不是說含有該assert的函數(shù)有錯誤,而是調(diào)用者出了差錯,assert可以幫助我們找到發(fā)生錯誤的原因。 // 使用斷言 byte *pbTo = (byte *) pvTo。 【建議645】用于出錯處理的返回值一定要清楚,讓使用者不容易忽視或誤解錯誤情況。相同的輸入應(yīng)當(dāng)產(chǎn)生相同的輸出。return temp。這是臨時對象的語法,表示“創(chuàng)建一個臨時對象并返回它”。我們不要輕視return語句。 此時 a + b 并不返回期望值,c什么也得不到,流下了隱患。 // ‘\0’的字符串 = new char[strlen() + strlen() +1]。如果用“值傳遞”的方式,雖然功能仍然正確,但由于return語句要把 *this拷貝到保存返回值的外部存儲單元之中,增加了不必要的開銷,降低了賦值函數(shù)的效率。 String::operate=(const String amp。例如:class String{… // 賦值函數(shù) String amp。 【建議621】有時候函數(shù)原本不需要返回值,但為了增加靈活性如支持鏈式表達,可以附加返回值。為了區(qū)別于正常的字符,只好將EOF定義為負數(shù)(通常為負1)。c = getchar()。C語言中,凡不加類型說明的函數(shù),一律自動按整型處理。178。一般地,應(yīng)將目的參數(shù)放在前面,源參數(shù)放在后面。 // 良好的風(fēng)格float GetValue()。C語言中,函數(shù)的參數(shù)和返回值的傳遞方式有兩種:值傳遞(pass by value)和指針傳遞(pass by pointer)。 int array2[SIZE2]。const數(shù)據(jù)成員的初始化只能在類構(gòu)造函數(shù)的初始化表中進行,例如 class A {… A(int size)。由于define定義的宏常量是全局的,不能達到目的,于是想當(dāng)然地覺得應(yīng)該用const修飾數(shù)據(jù)成員來實現(xiàn)。(2) 有些集成化的調(diào)試工具可以對const常量進行調(diào)試,但是不能對宏常量進行調(diào)試。(3) 如果要修改數(shù)字或字符串,則會在很多地方改動,既麻煩又容易出錯。 } } } error: …就象樓房著火了,來不及從樓梯一級一級往下走,可從窗口跳出火坑。它可能跳過了某些對象的構(gòu)造、變量的初始化、重要的計算等語句,例如:goto state。 … default : … break。 xN。 iN。for (i=0。 col++ ){for (row=0。例如示例44(b)的效率比示例44(a)的高。 return y。 (x=EPSINON))其中EPSINON是允許的誤差(即精度)。TRUE的值究竟是什么并沒有統(tǒng)一的標準。d = a + r。amp。例如:word = (high 8) | lowif ((a | b) amp。注意一元運算符 + * 的優(yōu)先級高于對應(yīng)的二元運算符。m_height = height。 const int MAX_LENGTH = 100。 // 類名 class LeafNode。int SetValue(…)。float newValue。l 【規(guī)則314】程序中不要出現(xiàn)僅靠大小寫區(qū)分的相似的標識符。幾十年前老ANSI C規(guī)定名字不準超過6個字符,現(xiàn)今的C++/C不再有此限制。l 【規(guī)則311】標識符應(yīng)當(dāng)直觀且可以拼讀,可望文知意,不必進行“解碼”?!靶傺览狈ㄗ畲蟮娜秉c是煩瑣,例如int i, j, k。void Func2(void)。采用這種版式的程序員主張類的設(shè)計“以數(shù)據(jù)為中心”,重點關(guān)注類的內(nèi)部結(jié)構(gòu)。l 【規(guī)則275】盡量避免在注釋中使用縮寫,特別是不常用縮寫。注釋的花樣要少。 int *x, y。 very_longer_update){ dosomething()。if ((very_longer_variable1 = very_longer_variable12)amp。void Function(int x){… // program code}void Function(int x){… // program code}if (condition){… // program code}else{… // program code}if (condition){… // program code}else {… // program code}for (initialization。 // 不要寫成 array [ 5 ] = 0。 I 10。amp。178。 condition。象const、virtual、inline、case 等關(guān)鍵字之后至少要留一個空格,否則無法辨析關(guān)鍵字。示例22(a) 風(fēng)格良好的代碼行 示例22(b) 風(fēng)格不良的代碼行178。for (initialization。 // 寬度高度深度x = a + b。l 【規(guī)則222】if、for、while、do等語句自占一行,執(zhí)行語句不得緊跟其后。l 【規(guī)則211】在每個類聲明之后、每個函數(shù)定義結(jié)束之后都要加空行??梢园殉绦虻陌媸奖扔鳛椤皶ā薄#?)頭文件能加強類型安全檢查。(3) 程序的實現(xiàn)體(包括數(shù)據(jù)和代碼)。建議將成員函數(shù)的定義與聲明分開,不論該函數(shù)體有多么小。(3)函數(shù)和類結(jié)構(gòu)聲明等。另一個文件用于保存程序的實現(xiàn)(implementation),稱為定義(definition)文件。 版權(quán)聲明如下:(1)讀者可以任意拷貝、修改本書的內(nèi)容,但不可以篡改作者及所屬單位。光看本書對提高編程質(zhì)量是有限的,建議大家閱讀本書的參考文獻,那些都是經(jīng)典名著。團隊開發(fā)講究風(fēng)格一致,如果制定了大家認可的編程風(fēng)格,那么所有組員都要遵守。希望你能和我們多多交流、相互促進。二、本書導(dǎo)讀 首先請做附錄B的C++/C試題(不要看答案),考查自己的編程質(zhì)量究竟如何。要知道華為、上海貝爾、中興等公司的員工素質(zhì)在國內(nèi)IT企業(yè)中是比較前列的,倘若他們的編程質(zhì)量都如此差的話,我們怎么敢期望中小公司拿出高質(zhì)量的軟件呢?連程序都編不好,還談什么振興民族軟件產(chǎn)業(yè),豈不胡扯。我到上海貝爾工作一年來,陸續(xù)面試或測試過近百名“新”“老”程序員的編程技能,質(zhì)量合格率大約是10%。大家認為提高質(zhì)量與生產(chǎn)率是軟件工程要解決的核心問題。太容易了吧?錯!這么一個小不點的函數(shù),他從三個方面考查:(1)編程風(fēng)格;(2)出錯處理;(3)算法復(fù)雜度分析(用于提高性能)。讀博期間我曾用一年時間開發(fā)了一個近10萬行C++代碼的3D圖形軟件產(chǎn)品,我內(nèi)心得意表面謙虛地向一位真正的軟件高手請教。所以別奇怪,程序員的很多缺點竟然可以被當(dāng)作優(yōu)點來欣賞。(4) 真正的程序員不畫流程圖,原始人和文盲才會干這事。 請花一兩個小時認真閱讀這本百頁經(jīng)書,你將會獲益匪淺,這是前面N1個讀者的建議。(7) 真正的程序員認為自己比用戶更明白用戶需要什么。我從讀大學(xué)到博士畢業(yè)十年來一直勤奮好學(xué),累計編寫了數(shù)十萬行C++/C代碼。我目瞪口呆地意識到這套軟件毫無實用價值,一年的心血白化了,并且害死了自己的軟件公司。我精神抖擻地進“考場”,大汗淋漓地出“考場”。勤奮好學(xué)的程序員長期在低質(zhì)量的程序堆中滾爬,吃盡苦頭之后才有一些心得體會,長進極慢,我就是一例。我做過現(xiàn)場試驗:有一次部門新進14名碩士生,在開歡迎會之前對他們進行“C++/C編程技能”摸底考試。定義2:能長期穩(wěn)定地編寫出高難度、高質(zhì)量程序的程序員稱為編程高手。編程質(zhì)量差往往是由于不良習(xí)慣造成的,與人的智力、能力沒有多大關(guān)系,還是有藥可救的。 編程考試結(jié)束后,請閱讀本書的正文。編程也是同樣道理。上海貝爾的員工可以向網(wǎng)絡(luò)應(yīng)用事業(yè)部軟件工程研究小組索取CMMI有關(guān)資料,最好能參加培訓(xùn)。 預(yù)計到2002年7月,我們將建立切合中國國情的CMMI 3級解決方案。(2)文件名稱,標識符,摘要。l 【規(guī)則122】用 include 格式來引用標準庫的頭文件(編譯器將從標準庫目錄開始搜索)。// 版權(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。}// 空行o
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1