1. 程式人生 > >C語言實現面向物件的方法

C語言實現面向物件的方法

對比C和C++,C語言的結構體的確有點類似C++類的概念,可使用結構體內嵌指標實現面向物件程式設計

總體來說,C語言是面向過程的,但是C語言寫出的Linux系統是面向物件的。非面向物件的語言,其實也是可以使用面向物件的思路來編寫程式的。只是說用面向物件的語言來實現面向物件程式設計會更簡單一些,但是C語言的高效性是其他面向物件程式語言無法比擬的。當然使用C語言來實現面向物件的開發相對不容易理解,這就是為什麼大多數人學過C語言卻看不懂Linux核心原始碼。

struct obj
{
    int age;
    void (*pFunc)(void);
};

使用這樣的結構體就可以實現面向物件,這樣包含了函式指標的結構體就類似於面向物件中的CLASS,結構體中的變數類似於CLASS中的成員變數,結構體中的函式指標類似於CLASS中的成員方法。

其實大部分的底層程式碼都是使用面向物件的方法來封裝,例如:Linux核心、其他SDK底層程式碼等