C Traps and Pitfalls (中文版)

C Traps and Pitfalls (中文版)

C Traps and Pitfalls

期:
2019/12/12
9
380342
查詢門市庫存
C語言大師經典名作至今仍然歷久不衰
幫助你避開編寫C語言時各種意外陷阱
無論是新手老手高手都應該要案頭備存

內容簡介

C語言大師經典名作至今仍然歷久不衰
幫助你避開編寫C語言時各種意外陷阱
無論是新手老手高手都應該要案頭備存

作者以自己1985年在Bell實驗室時發表的一篇論文為基礎,結合自己的工作經驗,進而成為這本對C語言程式設計師具有珍貴價值的經典著作。寫作本書的出發點並不是要批判C語言,而是要幫助C語言程式設計師繞過編寫過程中的陷阱和障礙。

全書分為8章,分別從詞法分析、語法語義、連接、庫函數、預處理器、可移植性缺陷等幾個方面,分析了在C語言編寫中可能遇到的問題。最後,作者用一章的篇幅提供了若干具有實用價值的建議。

本書適合有一定經驗的C語言程式設計師閱讀學習,即便你是C語言編寫高手,本書也應該成為你案頭上的必備書籍。
展開看更多

產品目錄

CHAPTER 00 導讀



CHAPTER 01 詞法陷阱

1.1 = 不同於==

1.2 & 和 | 不同於 && 和 ||

1.3 詞法分析中的「貪心法」

1.4 整數型常數

1.5 字元與字串



CHAPTER 02 語法陷阱

2.1 理解函數宣告

2.2 運算子的優先級問題

2.3 注意作為語句結束標誌的分號

2.4 switch 語句

2.5 函數呼叫

2.6 「懸掛」else 引發的問題



CHAPTER 03 語義陷阱

3.1 指標與陣列

3.2 非陣列的指標

3.3 作為參數的陣列宣告

3.4 避免「舉隅法」

3.5 空指標並非空字串

3.6 邊界計算與不對稱邊界

3.7 求值順序

3.8 運算子&&、|| 和 !

3.9 整數溢出

3.10 為函數main提供返回值



CHAPTER 04 連結

4.1 什麼是連結器

4.2 宣告與定義

4.3 命名衝突與static修飾子

4.4 形式參數、實際參數與返回值

4.5 檢查外部類型

4.6 標頭檔



CHAPTER 05 庫函數

5.1 返回整數的getchar函數

5.2 更新順序檔案

5.3 緩衝輸出與記憶體分配

5.4 使用 errno 檢測錯誤

5.5 庫函數 signal



CHAPTER 06 預處理器

6.1 不能忽視巨集定義中的空格

6.2 巨集並不是函數

6.3 巨集並不是語句

6.4 巨集並不是類型定義



CHAPTER 07 可移植性缺陷

7.1 應對 C 語言標準變更

7.2 識別子名稱的限制

7.3 整數的大小

7.4 字元是有符號整數還是無符號整數

7.5 移位運算子

7.6 記憶體位置

7.7 除法運算時發生的截斷

7.8 亂數的大小

7.9 大小寫轉換

7.10 首先釋放,然後重新分配

7.11 可移植性問題的一個例子



CHAPTER 8 建議與答案

8.1 建議

8.2 答案



附錄A

附錄B

作者介紹

Andrew Koenig

Andrew Koenig

AT&T大規模程式研發部(前貝爾實驗室)成員。他從1986年開始從事C語言的研究,1977年加入貝爾實驗室。他編寫了一些早期的類別庫,並在1988年組織召開了第一個相當規模的C++會議。在ISO/ANSI C++委員會成立的1989年,他就加入了該委員會,並一直擔任專案編輯。他已經發表了C++方面的100多篇論文,在Addsion-Wesley出版了《C Trap and Pitfalls》,和《Ruminations on C++(C++沉思錄)》(博碩出版)還應邀到世界各地演講。

Andrew Koenig不僅有著多年的C++開發、研究和教學經驗,而且還親身參與了C++的演化和變革,對C++的變化和發展發揮重要的影響。

規格

誠品貨碼 / 2681835749005
ISBN13 / 9789864344529
ISBN10 / 9864344528
EAN貨碼 / 9789864344529
頁數 / 208
注音版 / 否
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 23X17CM
級別 / N:無
重量(g) / 532g

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送