
試讀本書
如果讀者想試讀本書,可在以下連結下載試讀本:
- PDF 試讀本:適用於 Acrobat Reader 等電子書閱讀軟體
- ePub 試讀本:適用於 Kobo eReader、mooInk eReader 等電子書閱讀裝置
- MOBI 試讀本:適用於 Amazon Kindle 等電子書閱讀裝置
使用試讀本的用意在於確認自己的閱讀軟體或閱讀裝置是否是否能順利閱讀本書,以做為購買本書的依據,不只是試讀其內容。
購買本書時可同時取得上列三種檔案格式的電子書,應可滿足絕大部分的閱讀需求。
購買本書
以 PDF 版本來計算,本書共有 240 頁。
本書價格為 6 (美元/年)。這個價格同時包含 PDF、ePub、MOBI 三種版本的電子書。如果不需要續約,只需付一年份的費用。
本書簡介
傳統的 C 語言教材,是以 ANSI C (C89) 為準。但 C 並非停滯不前,在近年來經歷數次改版,加入了新的語法特性。充份利用新語法特性的 C 語言,就是現代 C 語言。
本書除了介紹 ANSI C 以外,也會介紹現代 C 語言的特性及工具鏈。由於本書兼具傳統和現代的元素,讀者可在讀完本書後,視專案需求選擇合適的 C 標準。
本書內容
本書包含以下內容:
- 簡介
- 建置 C 開發環境
- Windows
- macOS
- GNU/Linux
- 現代的 C 開發工具
- 基本概念
- 資料型態 (data type)
- 變數 (variable)
- 運算子 (operator)
- 選擇控制結構 (selection control structure)
- 迭代控制結構 (iteration control structure)
- 指標 (pointer) 和記憶體管理 (memory management)
- 陣列 (array)
- 字串 (C-style string)
- 結構體 (structure)
- 聯合體 (union)
- 列舉 (enumeration)
- 函式 (function)
- 巨集 (macro) 或前置處理器 (preprocessor)
- 函式庫 (library)
- 基本輸出入 (basic input and output)
學完上述內容後,就算是學會 C 語言的核心語法,可以開始用 C 撰寫電腦程式。
除了介紹 C 語言的語法外,本書加入現代 C 語言工具鏈 (toolchain) 相關的內容。讀者不論是使用 Windows、macOS、GNU/Linux 都能夠建置合用的 C 程式開發環境。此外,本書也加入 C 開發工具的介紹,用來改善 C 程式碼的品質。
版本演進
1.0.3
- 修改和 Visual C++ 相關的文字
- 小幅修改 GCC 或 Clang 的章節
1.0.2
- 小幅修改 GCC 或 Clang 的章節
- 小幅修改 Visual C++ 的章節
- 小幅修改資料型態的章節
- 新增計算陣列大小的方式
- 修復基本輸出入的範例程式
1.0.1
- 修改 C 語言簡介的章節
- 修改基本概念的章節
- 修改前置處理器的章節
1.0.0
- 首次發佈
常見問題
市面上已經有好幾本 C 語言教材了,這本書有什麼不同?
一般的 C 語言教材,在工具鏈的部分相當簡略。簡單地介紹一下 Visual Studio 的用法後,就進入 C 語法的部分。Visual C++ 僅限 Windows 能用,而且在 C 標準上是落後的。
相對地,本書會根據當代實務,介紹在 Windows、MacOS、GNU/Linux 等系統的 C 開發環境,讓讀者在不同系統上都可以用 C 語言寫程式。
除了編譯器和編輯器外,大部分的 C 語言教材都不會介紹 C 開發工具。但這些開發工具的確可以增加程式碼的品質和程式設計者的生產力。像是用 Valgrind 檢查記憶體洩露,用 CppCheck 檢查 C 程式碼等。所以,我們在本書中也加入了開發工具相關的內容。
此外,有些教材會刻意守在 ANSI C,避開 Visual C++ 不支援現代 C 語言的議題。但本書的內容兼具 ANSI C 及現代 C 語言所有的特性,並介紹實際可用的 C 編譯器,像是 GCC 或 Clang。讀者可視專案的需求選擇合適的 C 標準和 C 編譯器。
這個網站就可以免費看到本書的內容,為什麼要花錢購買電子書?
的確如此,本書部分內容可在這個網站上看到。然而,由於各種技術面的問題,本網站的內容不一定可隨時存取。像是網路斷線、網站當機等,都會造成本網站無法使用。
當你購買本書時,就可以離線存取本書所提供的內容,或者是用電子書閱讀器舒適地閱讀本書,不會受到網路存取的限制。即使本網站因故未能繼續營運,你還是可以永久保存這本書所要傳達的內容。
為了讓讀者有更好的閱讀體驗,我們在製作電子書時,做了以下更動:
- 修改和新增一些內容
- 重排部分範例程式碼
- 在電子書閱讀器上實測本書
為什麼這本書在我的閱讀軟體或閱讀裝置上看起來很醜?
在電子書常見的檔案格式中,PDF 和 ePub 是開放格式,而 MOBI 是專有格式。但電子書實際呈現的效果,仍會受到閱讀軟體或閱讀裝置的實作的影響。產出合乎標準的電子書並無法保證電子書在所有閱讀器上都能順利閱讀,這是無可奈何的事實。
著眼於此議題,與其由筆者逐一地測試市面上各種電子書閱讀器,不如讓讀者在自己實際使用的閱讀器上測試,故本書提供試讀本。試讀本不僅用來試讀電子書的內容,同時也可以測試電子書在實體裝置上的呈現效果。
網站的頁面會持續更新,但電子書的內容可能會過時
資訊類的書籍大抵上都很容易過時,有些資訊書籍的技術生命可能不超過三年。雖然,比起大部分的技術,C 語言是相對穩定的,本書也無法完全免除資訊圖書的宿命。
為了補償願意付費支持本網站的讀者,本書採用有期限訂閱制。當你購買本書後,可在購買日起一年內取得本書的更新版本。實際的訂閱機制以 Gumroad 所提供的方案為準。
我的訂閱過期了,需要再重新續訂嗎?
本書的更新記錄會公告在此頁面上,讀者可根據這些資訊自行決定是否要重新訂閱。如果不想重新訂閱的話,讀者仍可永久保存舊版本的電子書。
書本有用 DRM (Digital Rights Management) 嗎?
本書沒有上 DRM,但有一些保護措施來避免讀者散布本書。由於本書沒有使用 DRM,讀者可視需求自行備分本書的電子檔案。
我後悔了,可以退費嗎?
當你購買本書後,你已經取得本書的永久拷貝。退費會使得這本書自動變成免費的,所以我們無法這麼做。
實際上,你購買的是離線使用本書的權利。本書一部分的內容可以在這個網站上看到,雖然網頁上的內容和電子書的略有差異。此外,我們還提供試讀本,讓你可以充份地測試,確認本書可在你的閱讀器上順利運作後才購買。所以,你應該有足夠的資訊來決定要不要購買本書。
你們有提供紙本書 (Dead-Tree Copy) 嗎?
筆者比較建議直接在電腦或電子書閱讀器上觀看本書,因為這樣可以少砍一些樹。
不過,有些讀者仍然習慣閱讀紙本書。如果讀者真的想要觀看本書籍的紙本版本的話,請購買本書的電子版本後自行列印成紙本書籍即可。在自用的前提下,我們允許讀者自行印書。但勿將印出的書本散布或販賣。
承上,我們不提供寄送紙本書籍的服務,因為這樣會增加額外的成本 (印刷、包裝、運送等),這並不是筆者樂見的情境。
購買本書
以 PDF 版本來計算,本書共有 240 頁。
本書價格為 6 (美元/年)。這個價格同時包含 PDF、ePub、MOBI 三種版本的電子書。如果不需要續約,只需付一年份的費用。