位元詩人 現代 C 語言程式設計 電子書

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email
現代 C 語言程式設計

本書簡介

傳統的 C 語言教材,是以 ANSI C (C89) 為準。但 C 並非停滯不前,經歷數次改版後,加入了新的語法特性。充份利用新語法特性的 C 語言,就是現代 C 語言 (modern C)。除了相容性考量,不需要限制自己只使用 ANSI C 來撰寫 C 程式。

本書除了介紹 ANSI C 以外,也會介紹現代 C 語言的特性及工具鏈。現代 C 工具鍵在 Windows、macOS、GNU/Linux 均可取得,本書會分別在這三種環境介紹建置系統的過程。由於本書兼具傳統和現代的元素,讀者在讀完本書後,可視專案需求選擇合適的 C 標準來撰寫 C 程式。

試讀本書

如果讀者想試讀本書,可在以下連結下載試讀本:

  • PDF 試讀本:適用於 Acrobat Reader 等電子書閱讀軟體
  • ePub 試讀本:適用於 Kobo eReader、mooInk eReader 等電子書閱讀裝置
  • MOBI 試讀本:適用於 Amazon Kindle 等電子書閱讀裝置

使用試讀本的用意在於確認自己的閱讀軟體或閱讀裝置是否是否能順利閱讀本書,以做為購買本書的依據,不只是試讀其內容。

購買本書時可同時取得上列三種檔案格式的電子書,應可滿足絕大部分的閱讀需求。

購買本書

購買本書

以 PDF 版本來計算,本書共有 251 頁。

本書價格為 6.6 美元 (註) 。這個價格同時包含 PDF、ePub、MOBI 三種版本的電子書及購買日起一年的更新版本。

(註) 本書在 Gumroad 上採訂閱制是為了提供有限期更新服務。在訂閱期結束後會自動結束訂閱。

本書內容

本書包含以下內容:

  • 簡介
  • 建置 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)
  • 附錄:在 Visual Studio 2022 中建立 C 專案
  • 附錄:實用的 C 巨集

學完上述內容後,就算是學會 C 語言的核心語法,可以開始用 C 撰寫電腦程式。

除了介紹 C 語言的語法外,本書加入現代 C 工具鏈 (toolchain) 相關的內容。讀者不論是使用 Windows、macOS、GNU/Linux 都能夠建置合用的 C 程式開發環境。此外,本書也加入開發工具的說明,用來改善 C 程式碼的品質。

版本演進

  • 1.2.1
    • 在「實用的 C 巨集」新增跨平台的複數型態
    • 用基於 x86_64 的 Windows 的 Visual Studio 2022 檢查 C 範例程式碼的相容性
    • 用基於 Apple Silicon 的 macOS Big Sur 的 Clang 檢查 C 範例程式碼的相容性
  • 1.2.0
    • 改版內容:在 Visual Studio 2022 中建立 C 專案
    • 微調一些版面
  • 1.1.0
    • 新增內容:在 Visual Studio 2019 中使用 Clang
    • 新增內容:實用的 C 巨集
  • 1.0.5
    • 修改和修正少量文字
  • 1.0.4
    • 小幅增修基本概念的章節
  • 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 能用。相對地,本書會根據當代實務,介紹在 Windows、macOS、GNU/Linux 等系統的 C 開發環境,讓讀者在不同系統上都可以用 C 語言撰寫程式。

除了編譯器 (compiler) 和編輯器 (editor) 外,大部分的 C 語言教材不會介紹 C 相關開發工具。但這些開發工具的確可以增加程式碼的品質和程式設計者的生產力。像是用 Valgrind 檢查記憶體洩露,用 CppCheck 檢查 C 程式碼等。所以,我們在本書中也加入了開發工具相關的內容。

此外,有些教材仍會守在 ANSI C。當代的 C 編譯器已經支援現代 C,除了相容性考量,刻意只用 ANSI C 是沒有必要的。本書的內容兼具 ANSI C 及現代 C 的特性,並介紹實際可用的 C 編譯器,像是 GCC 或 Clang。讀者可視專案的需求選擇合適的 C 標準和 C 編譯器。

我已經會一些 C 語言了,這本書對我還有用嗎?

如果你想要複習 C 語言或是補強自己不足的部分,當然還是可以購買本書。然而,本書的寫作方式較偏向教程 (tutorial) 而非指引 (reference),如果要拿來查詢資料的話,可能不是最好的選擇。

如果你已經掌握大部分的 C 語法,就不建議再重覆購買語法書了。倒是可以考慮筆者的另一本書。該書是給剛學完 C 語法的程式設計者看的,定位在學習 C 語言的第二本書。

注意事項

這個網站就可以免費看到本書的內容,為什麼要花錢購買電子書?

的確如此,本書部分內容可在這個網站上看到。然而,由於各種技術面的問題,本網站的內容不一定可隨時存取。像是網路斷線、網站當機等,都會造成本網站無法使用。

當你購買本書時,就可以離線存取本書所提供的內容,或者是用電子書閱讀器舒適地閱讀本書,不會受到網路存取的限制。即使本網站因故未能繼續營運,你還是可以永久保存這本書所要傳達的內容。

為了讓讀者有更好的閱讀體驗,我們在製作電子書時,做了以下更動:

  • 修改和新增一些內容
  • 重排部分範例程式碼
  • 在電子書閱讀器上實測本書

為什麼這本書在我的閱讀軟體或閱讀裝置上看起來不甚美麗?

在電子書常見的檔案格式中,PDF 和 ePub 是開放格式,而 MOBI 是專有格式。但電子書實際呈現的效果,仍會受到閱讀軟體或閱讀裝置的實作的影響。產出合乎標準的電子書並無法保證電子書在所有閱讀器上都能順利閱讀,這是無可奈何的事實。

著眼於此議題,與其由筆者逐一地測試市面上各種電子書閱讀器,不如讓讀者在自己實際使用的閱讀器上測試,故本書提供試讀本。試讀本不僅用來試讀電子書的內容,同時也可以測試電子書在實體裝置上的呈現效果。

網站的頁面會持續更新,但電子書的內容可能會過時

資訊類的書籍大抵上都很容易過時,有些資訊書籍的技術生命可能少於三年。雖然,比起大部分的技術,C 語言是相對穩定的,本書也無法完全免除資訊圖書的宿命。

為了補償願意付費支持本網站的讀者,本書採用有期限訂閱制。當你購買本書後,可在購買日起一年內取得本書的更新版本。實際的訂閱機制以 Gumroad 所提供的方案為準。

我的訂閱過期了,需要再重新續訂嗎?

本書的更新記錄會公告在此頁面上,讀者可根據這些資訊自行決定是否要重新訂閱。如果不想重新訂閱的話,讀者仍可永久保存舊版本的電子書。

書本有用 DRM (Digital Rights Management) 嗎?

本書沒有上 DRM,但有一些保護措施來避免讀者散布本書。由於本書沒有使用 DRM,讀者可視需求自行備分本書的電子檔案。

我後悔了,可以退費嗎?

當你購買本書後,你已經取得本書的永久拷貝。退費會使得這本書自動變成免費的,所以我們無法這麼做。

實際上,你購買的是離線使用本書的權利。本書一部分的內容可以在這個網站上看到,雖然網頁上的內容和電子書的略有差異。此外,我們還提供試讀本,讓你可以充份地測試,確認本書可在你的閱讀器上順利運作後才購買。所以,你應該有足夠的資訊來決定要不要購買本書。

你們有提供紙本書 (Dead-Tree Copy) 嗎?

筆者比較建議直接在電腦或電子書閱讀器上觀看本書,因為這樣可以少砍一些樹。

不過,有些讀者仍然習慣閱讀紙本書。如果讀者真的想要觀看本書籍的紙本版本的話,請購買本書的電子版本後自行列印成紙本書籍即可。在自用的前提下,我們允許讀者自行印書。但勿將印出的書本散布或販賣。

承上,我們不提供寄送紙本書籍的服務,因為這樣會增加額外的成本 (印刷、包裝、運送等),這並不是筆者樂見的情境。

購買本書

購買本書

以 PDF 版本來計算,本書共有 251 頁。

本書價格為 6.6 美元 (註) 。這個價格同時包含 PDF、ePub、MOBI 三種版本的電子書及購買日起一年的更新版本。

(註) 本書在 Gumroad 上採訂閱制是為了提供有限期更新服務。在訂閱期結束後會自動結束訂閱。

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。