c語言介面與實現

2021-06-18 16:53:37 字數 972 閱讀 5148

分類: 程式設計

2006-04-13 21:57

7392人閱讀收藏

舉報 語言c

資料結構

c++lua

exception

書中對atom,list,stack,hashtable,set,ring,exception等都作了**。相信看過這邊書後,你使用c程式設計的功力會大為提高。也許使用c++的朋友會認為這些c++的標準模板庫都可以實現,因此對c封裝這些不屑一顧。但是即使是c++程式設計師,我相信你看過本書後,就不會這麼認為了,這些對寫好c++**也同樣有好處。反正我是用stl後就變得很懶,什麼資料結構都向stl靠,這可不是很好。網上有篇文章流傳的很廣,叫做《lua讓我臉紅》,為什麼呢?因為lua編譯器和虛擬機器就是用純c實現的。乙個能把c寫得如此優雅的人,你可以想到他寫起c++來會怎麼樣。開啟lua的原始碼,你會發現,乙個全域性變數都沒有,**非常簡潔。lua編寫就很有本書的思想。比如lua裡面的字串,全部都存在hashtable中,tsring儲存的只是對hashtable的「引用」,比較字串只需要比較位址就可以了。這個方法就是本書中的atom.

這本書還用setjmp,longjmp實現了乙個c的異常機制,setjmp,longjmp在一般的c語言書中介紹的很少,看過之後,我對異常機制也有了更深的理解。

對於va_start,va_end這些函式,書中也有詳細的講解,如何封裝成自己的format(如printf)函式。

有很多底層的函式,c標準庫中的函式,本書都有實現,如itoa,還有字串函式等。不要說這是重造輪子,這些有用得著的時候。

記憶體管理一向是大難題,對此,本書用兩章內容**了自己封裝記憶體管理函式,包括記憶體池的使用。

最後用一段**結束:(fn是函式指標)

#define base int a;int b; int c;fn fn

struct derive1

;struct derive2

;是不是有點物件導向的味道?看過本書,你寫出c來就不是那麼亂遭遭了。

C語言介面與實現 Atom

原子 atom 這一資料結構的工作原理基本類似於拉鍊式雜湊表,每個原子對應唯一的字串,不同的原子對應的字串內容不同 用數學語言講就是在原子和字串之間建立了雙射 原子的特點有三個 其一,每個原子對應的字串是不可變的 其二,相同內容的字串只會儲存一次,節省了儲存空間 其三,比較兩個字串是否相同時不必知道...

C 介面與實現

公有繼承 inte ce and implementation 三種繼承的方式 pure virtual function 只繼承基類的介面,要在派生類中重寫該函式的實現。至於是在子類中實現還是子類的子類中實現都無所謂,關鍵是需要例項化的類就需要實現,不然物件是無法建立的。virtual funct...

《c語言介面與實現》讀後感

書中對atom,list,stack,hashtable,set,ring,exception等都作了 相信看過這邊書後,你使用c程式設計的功力會大為提高。也許使用c 的朋友會認為這些c 的標準模板庫都可以實現,因此對c封裝這些不屑一顧。但是即使是c 程式設計師,我相信你看過本書後,就不會這麼認為了...