圖書簡介
《C專家編程》展示了最優秀的C程式設計師所使用的編碼技巧,並專門開闢了一章對C++的基礎知識進行了介紹。書中對C的歷史、語言特性、聲明、數組、指針、連結、運行時、記憶體以及如何進一步學習C++等問題進行了細緻的講解和深入的分析。全書擷取幾十個實例進行講解,對C程式設計師具有非常高的實用價值。
目錄
第 1章 C:穿越時空的迷霧
1.1 C語言的史前階段
1.2 C語言的早期體驗
1.3 標準I/O庫和C預處理器
1.4 K&R C
1.5 今 日之ANSI C
1.6 它很棒,但它符合標準嗎
1.7 編譯限制
1.8 ANSI C標準的結構
1.9 閱讀ANSI C標準,尋找樂趣和裨益
1.10 “安靜的改變”有多少安靜
1.11 輕鬆一下——由編譯器定義的Pragmas效果
第 2章 這不是Bug,而是語言特性
2.1 這關語言特性何事,在Fortran里這就是Bug呀
2.2 多做之過
2.3 誤做之過
2.4 少做之過
2.5 輕鬆一下——有些特性確實就是Bug
2.6 參考文獻
第3章 分析C語言的聲明
3.1 只有編譯器才會喜歡的語法
3.2 聲明是如何形成的
3.3 優先權規則
3.4 通過圖表分析C語言的聲明
3.5 typedef可以成為你的朋友
3.6 typedef int x[10]和#define x int[10]的區別
3.7 typedef struct foo{ ... foo; }的含義
3.8 理解所有分析過程的代碼段
3.9 輕鬆一下——驅動物理實體的軟體
第4章 令人震驚的事實:數組和指針並不相同
4.1 數組並非指針
4.2 我的代碼為什麼無法運行
4.3 什麼是聲明,什麼是定義
4.4 使聲明與定義相匹配
4.5 數組和指針的其他區別
4.6 輕鬆一下——回文的樂趣
第5章 對連結的思考
5.1 函式館、連結和載入
5.2 動態連結的優點
5.3 函式館連結的5個特殊秘密
5.4 警惕Interpositioning
5.5 產生連結器報告檔案
5.6 輕鬆一下——看看誰在說話:挑戰Turing測驗
第6章 運動的詩章:運行時數據結構
6.1 a.out及其傳說
6.2 段
6.3 作業系統在a.out檔案里幹了些什麼
6.4 C語言運行時系統在a.out里幹了些什麼
6.5 當函式被調用時發生了什麼:過程活動記錄
6.6 auto和static關鍵字
6.7 控制執行緒
6.8 setjmp和longjmp
6.9 UNIX中的堆疊段
6.10 MS-DOS中的堆疊段
6.11 有用的C語言工具
6.12 輕鬆一下——卡耐基-梅隆大學的編程難題
6.13 只適用於高 級學員閱讀的材料
第7章 對記憶體的思考
7.1 Intel 80x86系列
7.2 Intel 80x86記憶體模型以及它的工作原理
7.3 虛擬記憶體
7.4 Cache存儲器
7.5 數據段和堆
7.6 記憶體泄漏
7.7 匯流排錯誤
7.8 輕鬆一下——“Thing King”和“頁面遊戲”
第8章 為什麼程式設計師無法分清萬聖節和聖誕節
8.1 Portzebie度量衡系統
8.2 根據位模式構築圖形
8.3 在等待時類型發生了變化
8.4 原型之痛
8.5 原型在什麼地方會失敗
8.6 不需要按回車鍵就能得到一個字元
8.7 用C語言實現有限狀態機
8.8 軟體比硬體更困難
8.9 如何進行強制類型轉換,為何要進行類型強制轉換
8.10 輕鬆一下——國際C語言混亂代碼大賽
第9章 再論數組
9.1 什麼時候數組與指針相同
9.2 為什麼會發生混淆
9.3 為什麼C語言把數組形參當作指針
9.4 數組片段的下標
9.5 數組和指針可交換性的總結
9.6 C語言的多維數組
9.7 輕鬆一下——軟體/硬體平衡
第 10章 再論指針
10.1 多維數組的記憶體布局
10.2 指針數組就是Iliffe向量
10.3 在鋸齒狀數組上使用指針
10.4 向函式傳遞一個一維數組
10.5 使用指針向函式傳遞一個多維數組
10.6 使用指針從函式返回一個數組
10.7 使用指針創建和使用動態數組
10.8 輕鬆一下——程式檢驗的限制
第 11章 你懂得C,所以C++不在話下
11.1 初識OOP
11.2 抽象——取事物的本質特性
11.3 封裝——把相關的類型、數據和函式組合在一起
11.4 展示一些類——用戶定義類型享有和預定義類型一樣的許可權
11.5 訪問控制
11.6 聲明
11.7 如何調用成員函式
11.8 繼承——復用已經定義的操作
11.9 多重繼承——從兩個或更多的基類派生
11.10 重載——作用於不同類型的同一操作具有相同的名字
11.11 C++如何進行操作符重載
11.12 C++的輸入/輸出(I/O)
11.13 多態——運行時綁定
11.14 解釋
11.15 C++如何表現多態
11.16 新奇玩意——多態
11.17 C++的其他要點
11.18 如果我的目標是那裡,我不會從這裡起步
11.19 它或許過於複雜,但卻是惟一可行的方案
11.20 輕鬆一下——死亡計算機協會
11.21 更多閱讀材料
附錄 程式設計師工作面試的秘密