国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若尔盖县| 黄石市| 巴林左旗| 呼伦贝尔市| 普格县| 通山县| 富宁县| 泾源县| 台南县| 维西| 贡觉县| 平顺县| 天峨县| 荔浦县| 北宁市| 四子王旗| 托克托县| 夏津县| 乌海市| 枝江市| 蓬溪县| 永清县| 临海市| 长沙市| 广州市| 吴旗县| 太保市| 屏山县| 福泉市| 揭西县| 镇赉县| 宣威市| 武强县| 隆回县| 江华| 庄浪县| 繁峙县| 衡水市| 图木舒克市| 新建县| 长海县|