産品特色
編輯推薦
《C專傢編程》可以幫助有一定經驗的C程序員成為C編程方麵的專傢,對於具備相當的C語言基礎的程序員,《C專傢編程》可以幫助他們站在C的高度瞭解和學習C++。書本擷取瞭幾十個實例,細緻、深入地講解瞭C的曆史、語言特性、聲明、數組、指針、鏈接、運行時、內存以及分析瞭如何進一步學習C++等問題。《C專傢編程》是一本ANSIC編程語言的高級讀本。它適用於已經編寫過C程序的人,以及那些想迅速獲取一些專傢觀點和技巧的人。
專傢級的C編程指南展示C程序員的編程技巧。
即使你讀過AndyKoneig的《C陷阱與缺陷》,你還是應該看看PeterVanDerLinden的書。我想,他們兩人的書稱都應該韆方百計的搞到,如獲至寶地捧讀。如果我是你的上司,這是必須的要求。
內容簡介
《C和C++經典著作 C專傢編程Expert C Programming Deep C Secrets》展示瞭C程序員所使用的編碼技巧,並專門開闢瞭一章對C++的基礎知識進行瞭介紹。書中C的曆史、語言特性、聲明、數組、指針、鏈接、運行時、內存以及如何進一步學習C++等問題進行瞭細緻的講解和深入的分析。全書擷取幾十個實例進行講解,對C程序員具有非常高的實用價值。《C和C++經典著作?C專傢編程Expert C Programming Deep C Secrets》可以幫助有一定經驗的C程序員成為C編程方麵的專傢,對於具備相當的C語言基礎的程序員,《C和C++經典著作 C專傢編程Expert C Programming Deep C Secrets》可以幫助他們站在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 更多閱讀材料
附錄A 程序員工作麵試的秘密
附錄B 術語錶
精彩書摘
C:穿越時空的迷霧
C詭異離奇,缺陷重重,卻獲得瞭巨大的成功。
——Dennis Ritchie
1.1 C語言的史前階段
聽上去有些荒謬,C語言的産生竟然源於一個失敗的項目。1969年,通用電氣、麻省理工學院和貝爾實驗室聯閤創立瞭一個龐大的項目——Multics工程。該項目的目的是創建一個操作係統,但顯然遇到瞭麻煩:它不但無法交付原先所承諾的快速而便捷的在綫係統,甚至連一點有用的東西都沒有弄齣來。雖然開發小組最終勉強讓Multics開動起來,但他們還是陷入瞭泥淖,就像IBM在OS/360上麵一樣。他們試圖建立一個非常巨大的操作係統,能夠應用於規模很小的硬件係統中。Multics成瞭總結工程教訓的寶庫,但它同時也為C語言體現“小即是美”鋪平瞭道路。
當心灰意冷的貝爾實驗室的專傢們撤離Multics工程後,他們又去尋找其他任務。其中一位名叫Ken Thompson的研究人員對另一個操作係統很感興趣,他為此好幾次嚮貝爾管理層提議,但均遭否決。在等待官方批準時,Thompson和他的同事Dennis Ritchie自娛自樂,把Thompson的“太空旅行”軟件移植到不太常用的PDP-7係統上。太空旅行軟件模擬太陽係的主要星體,把它們顯示在圖形屏幕上,並創建瞭一架航天飛機,它能夠飛行並降落到各個行星上。與此同時,Thompson加緊工作,為PDP-7編寫瞭一個簡易的新型操作係統。它比Multics簡單得多,也輕便得多。整個係統都是用匯編語言編寫的。Brian Kemighan在1970年給它取名為UNIX,自嘲地總結瞭從Multics中獲得的那些不應該做的教訓。圖1—1描述瞭早期C、UNIX和相關硬件係統的關係。
是先有C語言還是先有UNIX呢?說起這個問題,人們很容易陷入先有雞還是先有蛋的套套中。確切地說,UNIX比C語言齣現得早(這也是為什麼UNIX的係統時間是從1970年1月1日起按秒計算的,它就是那時候産生的啊)。然而,我們這裏討論的不是傢禽趣聞,而是編程故事。用匯編語言編寫UNIX顯得很笨拙,在編製數據結構時浪費瞭大量的時間,而且係統難以調試,理解起來也很睏難。Thompson想利用高級語言的一些優點,但又不想像PL/I那樣效率低下,也不想碰見在Multics中曾遇到過的復雜問題。在用Fortran進行瞭一番簡短而又不成功的嘗試之後,Thompson創建瞭B語言,他把用於研究的語言BCPL作瞭簡化,使B的解釋器能常駐於PDP-7隻有8KB大小的內存中。B語言從來不曾真正成功過,因為硬件係統的內存限製,它隻允許放置解釋器,而不是編譯器,由此産生的低效阻礙瞭使用B語言進行UNIX自身的係統編程。
前言/序言
C和C++經典著作:C專傢編程Expert C Programming Deep C Secrets 下載 mobi epub pdf txt 電子書 格式
C和C++經典著作:C專傢編程Expert C Programming Deep C Secrets 下載 mobi pdf epub txt 電子書 格式 2024
C和C++經典著作:C專傢編程Expert C Programming Deep C Secrets mobi epub pdf txt 電子書 格式下載 2024