位元詩人 [C 語言] 應用程式設計教學

我們假設讀者已經熟悉 C 語言的語法,並準備開始用 C 寫實際應用程式。

以下內容不屬於語法本身,沒有唯一標準解法,而是目前常見、可行的設計與實作方式。
建議讀者除了參考本文,也多閱讀其他資料,並親自動手寫程式,才能真正建立起屬於自己的開發風格與實戰經驗。


本系列將介紹以下主題:

  1. Build system 的基本概念與選擇
  2. 專案結構與原始碼組織方式
  3. 跨平台開發會遇到的關鍵差異
  4. 如何用 C 模擬物件導向
  5. 在 C 中實作類似泛型的寫法
  6. 錯誤處理的策略與常見寫法
  7. 測試與簡易的測試框架
C 語言專案

C 的原生工具鏈並沒有「專案」這個概念。所謂的 C 專案,其實是因應工程需求而逐漸形成的抽象,用來管理 繼續閱讀

[C 語言] 程式設計教學:基於 CMake 的 C 應用程式專案

在本文中,我們藉由以 CMake 為基礎的 Hello World 程式專案來展示 CMake 的使用方法。由於 C 程式的部分相當簡單,本文的重點會放在 CMake 的使用方式以及設定檔撰寫上面。 繼續閱讀

[C 語言] 程式設計教學:基於 CMake 的 C 函式庫專案

CMake 除了可以用來建立應用程式專案,也可用來建立函式庫專案。藉由 CMake 跨平台的特性,讓函式庫更容易分享出去。 繼續閱讀

[C 語言] 程式設計教學:處理 C 專案相依性 (Dependency)

當我們要寫應用程式時,很少會只用標準函式庫的功能。這時候,我們需要第三方函式庫來補足標準函式庫不足之處。對於小型任務,還勉勉強強可以自製輪子,但對於 GUI 函式庫或其他大型函式庫,就超出單一開發者的能力了。所以還是要會處理 C 專案的相依性。 繼續閱讀

[C 語言] 程式設計教學:撰寫跨平台 C 程式

在許多 C 語言教材中,會提到 C 語言是跨平台語言。然而,基礎教材只會碰觸到語法和標準函式庫的層面,這些層面已經是跨平台的。在越過語法和標準函式庫後,C 語言的跨平台並不是隨手可得的,而要經過一些額外的努力。 繼續閱讀

[C 語言] 程式設計教學:撰寫跨平台 C 函式庫

雖然 C 是跨平台語言,但卻不像 Java 等語言可立即取得跨平台的特性,而要經過一些努力。這是因為不同系統的系統 C API 不會完全相同。本文會介紹一些和撰寫跨平台 C 函式庫相關的議題,供想要撰寫跨平台 C 程式碼的讀者參考。 繼續閱讀

[C 語言] 程式設計教學:撰寫跨平台 C 專案

在先前的文章中,我們以概念為主,介紹撰寫跨平台 C 程式相關的議題。在本文中,我們延續這個議題,但會著重實際的工具使用。讀者可以將本文和先前的文章對照著看,對於撰寫跨平台 C 程式會更了解。 繼續閱讀

[C 語言] 應用程式設計教學:優化 C 程式碼

所謂的優化,就是用各種手法讓程式運行更快速。這是在程式運行正確後,進一步改善程式的方式。在本文中,我們從 C 的觀點在看如何優化程式碼。 繼續閱讀

[C 語言] 程式設計教學:物件導向程式入門

雖然 C 語言沒有直接支援物件導向程式的語法,但我們可以在一些真實世界的專案看到具有物件導向思維的 C 程式碼。本文介紹以 C 語言撰寫具有物件導向思維的程式碼。 繼續閱讀

[C 語言] 程式設計教學:如何實作類別 (Class) 和物件 (Object)

真正的物件,要有狀態和行為間的連動。狀態以資料的形式儲存在物件的屬性上,行為則是透過函式來實作。C 語言並沒有真正的物件,只能撰寫在精神上貼近物件的函式。在本文中,我們會以平面座標中的點為例,展示兩種物件的寫法。 繼續閱讀