国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在C語言中引入類的概念

2019-11-17 05:15:41
字體:
來源:轉載
供稿:網友

基于對象的程序設計的好處大家應該都有一定的體會,但是在 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;
else
return 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.com

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 客服| 宁晋县| 乌兰察布市| 托里县| 孝义市| 周至县| 元谋县| 新安县| 温宿县| 黔东| 木兰县| 巴中市| 花莲市| 武威市| 纳雍县| 乐都县| 鄂伦春自治旗| 平潭县| 太和县| 崇明县| 霍州市| 喀什市| 布拖县| 安西县| 香港 | 承德市| 南乐县| 滦平县| 鱼台县| 定南县| 大方县| 班戈县| 嘉定区| 新蔡县| 江安县| 宝丰县| 若羌县| 砀山县| 西峡县| 杨浦区| 临安市|