Chapter 1 Test-Driver Development – TDD for embedded C 筆記

TDD 是一種逐步建構軟體的技巧,在寫任何程式碼之前,應該先寫 test code ,test code 通常很小且可以被自動化執行,且 test 一定會先失敗,直到你開始寫 code 來通過 test 。

閱讀全文〈Chapter 1 Test-Driver Development – TDD for embedded C 筆記〉

在 linux kernel 中的 OOP 設計思維

我在 trace linux kernel 的 source code ,面對龐大且複雜的架構,時常覺得無所適從,經常看到許多 function pointer 或是 struct ,各種指來指去,讓你迷失在複雜的程式碼中,後來陸續看過一些文章與書籍後,才了解到其實背後都是 OOP (Object-Oriented Prigramming) 的設計思維,本篇文章想要來講 linux kernel 中是如何利用 C 語言來實現物件導向程式的封裝、繼承與多型。

閱讀全文〈在 linux kernel 中的 OOP 設計思維〉

如何區分 declaration 和 definition

C 和 C++ 都有宣告 declaraction 和定義 definition 的區別 ,這篇文章就想要把這兩個的差別探討清楚。

declaration,讓編譯器知道變數的型別和名稱,好讓編譯器可以做語法檢查。

definition ,一旦寫出定義式,該變數將被配置好需要的記憶體空間,同時可以為其設定初值。而 definition 也是一種 declaration 。

C 和 C++ 都有宣告 declaraction 和定義 definition 的區別 ,本篇文章將探討這兩個的差異。

declaration 宣告讓編譯器知道變數的型別和名稱,以便進行語法檢查;
而 definition 定義則表示該變數已被配置好所需的記憶體空間並可以設定初值。需特別注意, definition 也是一種 declaration 。

閱讀全文〈如何區分 declaration 和 definition〉