TOP
經典不再等待!讀懂羅馬人的強大,開啟你的智力冒險
從缺陷中學習C/C++(簡體書)
滿額折

從缺陷中學習C/C++(簡體書)

商品資訊

人民幣定價:39 元
定價
:NT$ 234 元
優惠價
87204
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點 :6 點
商品簡介
作者簡介
名人推薦
目次

商品簡介

C/C++是廣泛用于系統和應用軟件開發的語言,也是使用最為廣泛的編程語言。C/C++易學難用,尤其C++,經過20多年的發展,已經變得非常復雜,給編程人員帶來了很大的挑戰。那么如何在工程項目中用好C/C++語言、如何繞過Bug構建穩定可靠的生產系統、如何以最快速度全面了解C/C++編程中的陷阱和障礙,編寫出健壯可靠的代碼呢?《從缺陷中學習C/C++》將通過102個案例,幫助程序員盡快從新手成長為專家。案例涵蓋基礎問題、編譯問題、庫函數問題、文件處理、類和對象、內存使用、多線程問題、性能問題等。讀者每掌握一個案例就掌握了一個或幾個知識點,就能避免一類問題。由于是從大量編程中總結出來的具體Bug案例中學習,這種學習方式更直接,讓人印象更深刻。《從缺陷中學習C/C++》將為你成為C和C++高手、編寫出完美的程序助一臂之力。 《從缺陷中學習C/C++》適合程序員、測試人員以及C和C++初學者使用,也可以作為各大專院校和培訓學校的教學用書。

作者簡介

劉新浙 計算機專業碩士,先后就職于IBM中國開發中心和淘寶,曾任淘寶北京廣告算法和搜索部門測試負責人。
劉玲 計算機專業碩士,就職于淘寶軟件有限公司技術質量部,現任淘寶資深測試開發工程師。
李敬娜 計算機專業碩士,先后就職于百度電子商務部門和一淘搜索部門,資深測試開發工程師。
王超 先后從事軟件和互聯網的測試工作,專注于搜索方向。現任淘寶資深測試開發工程師。
李愛華 計算機專業碩士,就職于淘寶軟件有限公司技術質量部,資深測試開發工程師。

名人推薦

《從缺陷中學習C/C++》由淘寶廣告技術部測試團隊精心打造,業界權威人士潘愛民作序推薦,淘寶技術團隊業內必讀內刊。《從缺陷中學習C/C++》將為你成為C和C++高手、編寫出完美的程序助一臂之力。《從缺陷中學習C/C++》適合程序員、測試人員以及C和C++初學者使用,也可以作為各大專院校和培訓學校的教學用書。

目次

目 錄

第1章 基礎問題 1
1.1 運算符優先級引起的問題 1
1.2 不加括號的宏定義引起的錯誤 2
1.3 污染環境的宏定義 3
1.4 多語句宏定義使用錯誤 4
1.5 char轉為int時高位符號擴展的問題 6
1.6 int轉為char時的數據損失 7
1.7 非法的數組下標 9
1.8 有符號int與無符號int比較的后果 10
1.9 有符號的困惑 11
1.10 整除的精度問題 13
1.11 浮點數比較的精度問題 14
1.12 最小負整數取相反數溢出 15
目 錄

第1章 基礎問題 1
1.1 運算符優先級引起的問題 1
1.2 不加括號的宏定義引起的錯誤 2
1.3 污染環境的宏定義 3
1.4 多語句宏定義使用錯誤 4
1.5 char轉為int時高位符號擴展的問題 6
1.6 int轉為char時的數據損失 7
1.7 非法的數組下標 9
1.8 有符號int與無符號int比較的后果 10
1.9 有符號的困惑 11
1.10 整除的精度問題 13
1.11 浮點數比較的精度問題 14
1.12 最小負整數取相反數溢出 15
1.13 臨時變量溢出 16
1.14 size_t導致的死循環 17
1.15 誤用short引起緩沖區溢出 18
1.16 區分continue和return 20
1.17 指針常量和常量指針的區別 21
1.18 字符數組和指針不總是等價的 23
1.19 結構體成員變量初始化的隱患 24
1.20 返回值非void的函數沒有返回值 25
1.21 cin>>和getline混用導致的奇怪問題 27
1.22 小結 29

第2章 編譯問題 30
2.1 動態鏈接庫加載錯誤版本 30
2.2 相同名稱靜態庫的鏈接順序 32
2.3 使用命名空間來區分不同cpp中的同名類 33
2.4 C++模板編譯時依賴名稱查找 34
2.5 違背ODR原則可能會帶來的意想不到的問題 36
2.6 變量共用內存時使用O2優化編譯 38
2.7 小結 40

第3章 庫函數問題 41
3.1 sprintf函數引起的緩沖區溢出 41
3.2 snprintf函數format參數的問題 43
3.3 錯誤使用snprintf函數返回值 44
3.4 字符串復制不完整 45
3.5 string類的c_str方法使用不當 46
3.6 string類的“[]”操作符使用不正確 48
3.7 不正確的字符串比較 49
3.8 strncpy函數沒有復制結束符 51
3.9 調用memcpy函數前未初始化緩沖區 52
3.10 誤用sizeof操作符取字符串長度 53
3.11 string類find函數返回值判定 54
3.12 stringstream的清空 56
3.13 調用strptime函數前需初始化tm 57
3.14 使用feof函數的陷阱 59
3.15 for循環中調用vector容器insert函數 60
3.16 multiset容器erase函數的誤用 62
3.17 慎用容器類erase函數的返回值 63
3.18 for循環中調用vector容器erase函數 65
3.19 getopt函數參數問題 67
3.20 不用errno判斷系統調用是否成功 69
3.21 strcat函數造成的段錯誤 70
3.22 危險的strdup函數 71
3.23 小結 73

第4章 文件處理 74
4.1 程序異常退出時未關閉已打開文件 74
4.2 目錄打開后未關閉 75
4.3 寫文件沒有調用fflush 76
4.4 讀文件fread的返回值不能忽略 77
4.5 getline()使用不當導致的死循環 78
4.6 未重置流狀態導致讀文件錯誤 80
4.7 小結 82

第5章 類和對象 83
5.1 對象的淺復制 83
5.2 構造函數中的操作符重載 85
5.3 拷貝構造函數不能模板化 87
5.4 析構函數未捕獲異常引發coredump 89
5.5 構造函數中拋出異常引起內存泄露 91
5.6 多態性未生效 93
5.7 基類成員函數被隱藏 94
5.8 匿名對象引起的內存泄露 96
5.9 基類非虛析構函數引發內存泄露 97
5.10 刪除void*指針引發內存泄露 100
5.11 STL容器不會自動釋放指針指向的對象 102
5.12 靜態成員類內初始化 104
5.13 union作為類的成員時需要構造函數 105
5.14 成員函數尾部缺失const標注 107
5.15 使用memset初始化class 109
5.16 dynamic_cast轉換失敗返回NULL 110
5.17 小結 113

第6章 內存使用 114
6.1 數組越界 114
6.2 數組定義和值初始化形式混淆 115
6.3 數組傳參時的sizeof 116
6.4 臨時對象的生存期 117
6.5 變量的作用域 119
6.6 指針變量的傳值和傳址 120
6.7 指針賦值和指針賦址的混淆 121
6.8 指針釋放后再次使用 122
6.9 重復申請內存未釋放 124
6.10 delete與delete[]的區別 126
6.11 函數中途退出忘記釋放內存 126
6.12 二維數組的內存泄露 127
6.13 臨時變量內存不能返回 128
6.14 正確使用引用參數和引用返回值 129
6.15 試圖產生的指針很可能不存在 130
6.16 結構體成員內存對齊問題 131
6.17 String對象何時需delete 134
6.18 小結 135

第7章 多線程問題 136
7.1 局部靜態變量非線程安全 136
7.2 string類append操作非線程安全 138
7.3 中途退出造成的線程阻塞 142
7.4 結構體位域成員線程安全問題 144
7.5 多線程寫文件引發內容被覆蓋 146
7.6 線程未join引起的內存泄露 148
7.7 小結 150

第8章 性能問題 151
8.1 strlen用作循環條件影響性能 151
8.2 STL容器list使用時忌頻繁調用size() 152
8.3 誤用clear回收vector內存 154
8.4 calloc在glibc高版本下性能劣于低版本下 156
8.5 小結 157

第9章 C/C++編程中其他問題 158
9.1 中文截斷成亂碼 158
9.2 不必要的類型轉換 159
9.3 不確定的函數參數賦值 161
9.4 epoll邊沿觸發模式下的陷阱 163
9.5 小結 166

顯示全部信息

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 204
海外經銷商無庫存,到貨日平均30天至45天