美思 C 語言應用程式設計 電子書

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

本書簡介

除了學習 C 語法外,大部分 C 語言的書籍和資料結構 (data structure) 或演算法 (algorithm) 相關。在這些電腦科學 (computer science) 相關的主題中,C 並不是重點,而是把 C 當成實作這些主題的工具。

除此之外,在學完 C 語言的語法後,想要進一步地學習 C 程式設計,可看的書籍甚少。相關的學習資源多散布在網路上。著眼於這個議題,筆者以現代 C 語言為素材,融入當代程式設計的概念,撰寫了這本書籍。

做為 C 語言的中階書籍,本書的目標是橋接語法和應用間的落差。雖然在網路上或多或少可以看到類似的內容,但筆者花時間統整這些主題,讀者就不需要在漫漫網海中耗費時間找尋資料及嘗試錯誤。

試讀本書

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

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

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

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

購買本書

購買本書

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

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

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

本書內容

本書包含以下內容 (非本文目錄):

  • 建立 C 專案
    • 應用程式專案
    • 函式庫專案
  • 處理 C 專案相依性
  • 撰寫跨平台 C 程式
  • 檢查 C 程式碼的品質
    • 靜態程式碼檢查
    • 記憶體用量檢查
  • 優化 C 程式碼
  • 為 C 專案撰寫文件
  • 撰寫物件導向 C 程式
    • 模擬封裝
    • 模擬繼承
    • 模擬多型
  • 用 C 模擬泛型程式
    • 使用 void 指標
    • 使用前置處理器
    • 使用泛型型態巨集
    • 使用外部模板
  • 錯誤處理
  • 記錄和斷言
  • 撰寫測試程式
  • 利用持續整合進行自動化測試

版本演進

  • 1.0.1
    • 修改一些文字
  • 1.0.0
    • 首次發佈

常見問題

市面上已經有許多 C 語言的書籍,這本書有什麼不同?

大部分的 C 語言入門書籍著重在 C 的語法,即使有介紹開發實務,所占的篇幅也很少。為了這些少少的內容重覆購買 C 語言書籍並不是划算的投資。

相對來說,本書定位為 C 的第二本書,將語法的部分抽掉,專注在各項開發相關議題。即使讀者已經有 C 語言書籍了,購買本書仍然不會造成浪費。

我還不熟悉 C 語言,可以閱讀這本書嗎?

本書假定讀者已經熟悉基本的 C 語法,不會介紹這部分的內容。如果讀者還不熟悉 C 語言,可以參考拙著或是其他的 C 語言書籍。

這本書有資料結構和演算法相關的內容嗎?

資料結構和演算法是電腦科學的重要主題,可以寫成一本以上的書籍了。由於市面已經有許多資料結構和演算法的專書,為了節約篇幅,本書不會放入這些內容。

這本書有嵌入式裝置、物聯網相關的內容嗎?

本書的目標是通用性的程式設計相關概念,故沒有放入這些主題。

C 其實沒有物件導向和泛型的特性,為什麼要加上這些內容?

即使有許多語法特性更豐富的程式語言,程式設計者有時仍會用 C 來撰寫程式,像是提升效能、節約系統資源、和系統 API 互動等。這時候,不會為了語法特性更換語言。

在不更換語言的前提下,適度地使用這些模擬高階語法特性的撰碼模式,有助於提升程式碼的品質。

注意事項

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

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

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

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

  • 改寫現存的文字
  • 新增一些網站沒有的內容
  • 重排部分範例程式碼
  • 在電子書閱讀器上實測本書

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

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

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

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

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

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

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

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

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

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

我後悔了,可以退費嗎?

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

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

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

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

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

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

購買本書

購買本書

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

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

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

關於作者

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

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