在C語言中引入類的概念(轉)
在C語言中引入類的概念(轉)[@more@]基於物件的程式設計的好處大家應該都有一定的體會,但是在 C 語言中並不支援類的概念,不過我們可以透過 struct 實現一些基礎的類物件,如佇列、堆疊等。透過物件的實現可以在一定程度上提高程式設計效率、簡化 C程式設計。下面使用一個例子來介紹下如何在實現一個簡單的類,希望對大家有些益處:/* 應用訊息佇列類 */struct AppQueue{struct AppFrame *pHead, *pTail;void (*InQueue)(struct AppQueue *papq, struct AppFrame *apf);struct AppFrame * (*OutQueue)(struct AppQueue *papq);unsigned char (*Empty)(struct AppQueue *papq);void (*ClearQueue)(struct AppQueue *papq);};/* AppQueue 類成員函式實體 */void apq_InQueue(struct AppQueue *papq, struct AppFrame *apf){if(apf == NULL) return;apf->pNext = NULL;if(papq->pTail != NULL){papq->pTail->pNext = apf;papq->pTail = apf;}else{papq->pHead = papq->pTail = apf;}}struct AppFrame * apq_OutQueue(struct AppQueue *papq){struct AppFrame *paf;paf = papq->pHead;if(papq->pHead != papq->pTail){papq->pHead = papq->pNext;}else{papq->pHead = papq->pTail = NULL;}return paf;}unsigned char apq_Empty(struct AppQueue *papq){if((papq->pHead == papq->pTail) && (papq->pTail == NULL))return TRUE;elsereturn FALSE;}void apq_ClearQueue(struct AppQueue *papq){struct AppFrame *paf;while((paf = papq->OutQueue(papq)) != NULL){SysAppPool.Free(&SysAppPool, paf);}}/* AppQueue 類物件初始化 */void InitAppQueue(struct AppQueue *papq){papq->pHead = papq->pTail = NULL;papq->InQueue = apq_InQueue;papq->OutQueue = apq_OutQueue;papq->Empty = apq_Empty;papq->ClearQueue = apq_ClearQueue;}Qiyaismine@163.co
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944603/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- static在C語言中的作用C語言
- 解析C語言中的sizeof (轉)C語言
- "->" 在c語言中是什麼意思?C語言
- C語言中的#和##C語言
- 【轉】C語言中 -> 是什麼意思?C語言
- c語言中的&的用法C語言
- C語言中sync()C語言
- C語言中有C語言
- 解析C語言中的sizeofC語言
- C語言中extern的用法C語言
- C語言中&&,||,&,| 的區別C語言
- c語言中的作用域C語言
- C語言_瞭解一下C語言中的四種儲存類別C語言
- 【C】 30_C語言中的字串C語言字串
- C語言中庫函式呼叫幾例(轉)C語言函式
- C語言中字串與整數的相互轉換C語言字串
- C語言中的整數自動轉換原則C語言
- C 語言中的 time 函式函式
- c語言中的關鍵字C語言
- C語言中的檔案流C語言
- C語言中的*和&符號C語言符號
- C語言中的abort函式C語言函式
- C 語言中的 sscanf 詳解
- 泛型程式設計在非C++語言中的實現之探討 (轉)泛型程式設計C++
- 在C語言中實現泛型程式設計C語言泛型程式設計
- async/await 在 C# 語言中是如何工作的?(中)AIC#
- async/await 在 C# 語言中是如何工作的?(上)AIC#
- async/await 在 C# 語言中是如何工作的?(下)AIC#
- C語言中 EOF,在不同系統中的組合鍵C語言
- C語言中資料型別轉換函式C語言資料型別函式
- ECMAScript 6標準將為JavaScript引入類的概念JavaScript
- C 語言中 static 的作用介紹
- c語言中的getchar()和EOFC語言
- C語言中qsort函式的用法C語言函式
- C語言中 * 和 &的實際理解C語言
- C語言中的static 詳細分析C語言
- C語言中的命令列引數C語言命令列
- C語言中史上最愚蠢的BugC語言