mooc课程精选,成品人片观看入口众乐乐,久久久久人妻一区精品性色av,苍兰诀大结局是什么,白丝美女被狂躁免费视频网站

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > typedef分析理解

typedef分析理解 時間:2018-09-28      來源:未知

typedef是C語言中一個很好用的工具,大量存在于已有代碼中。

typedef 拆開 即為:type define,翻譯過來是類型定義,一般用于為類型起別名。

typedef定義的一般形式為: typedef 原類型名 新類型名 新類型名一般用大寫表示,以便于區(qū)別。

例1:typdefe int integer

Typedef為類型起別名總共分兩步:

第一步:聲明一個變量 int integer;

第二步:前邊加個typedef typedef int integer;

大家都知道第一步的語句聲明了一個變量integer,其類型是整型;如果在這個聲明的前面加上一個typedef后,整個語義又會是如何改變的呢?這以后integer是int類型的別名,所有用到int的地方都可以使用integer來替換。

如:integer a,b; 它等效于: int a,b; //a,b都是整型的變量

說白了,integer本來是一個變量的身份,前邊加個typedef后,搖身一變,變成了integer的類型的別名,具有了定義變量的權(quán)利。

typedef為類型起別名,別名一般用大寫,前邊小寫是為了易理解。

注意:這里要區(qū)分typedef 與define,有這樣一道?嫉墓P試題:

typedef char *CHAR與#define PCHAR char* 二者在功能上有什么不同?

程序執(zhí)行結(jié)果為:

分析:define為機械替換,CHAR a,b等價于char *a,b;即 char*a;char b;

此時a是char*類型,b是char類型

Typedef是為類型起別名,PCHAR c,d 等價于char *c;char *d;此時c和d都是char*類型。

例2:為結(jié)構(gòu)體取別名

以前的代碼中,聲明結(jié)果體新對象時,必須帶上struct 結(jié)構(gòu)體名,如:

struct stu

{

char name[20];

int age;

char sex;

};

Struct stu s1,s2;//s1,s2皆為結(jié)構(gòu)體對象

使用typedef為結(jié)構(gòu)體取別名:

typedef struct stu

{

char name[20];

int age;

char sex;

} STU;

定義STU表示struct stu的結(jié)構(gòu)類型,然后可用STU來說明結(jié)構(gòu)變量: STU s1,s2; 這里的STU s1,s2等價于上邊的struct stu s1,s2; 代碼更加簡潔。

例3:typedef int AR[5]

AR a;

AR 和a分別代表什么?根據(jù)例1所述,去掉typedef ,AR是含有5個整型元素的數(shù)組,加上typedef后,AR是一個類型名,代表很有5個整型元素的數(shù)組類型,AR定義的a,那么a就是一個含有5個整型元素的數(shù)組。

程序運行的結(jié)果為:

例4:是為函數(shù)指針起別名

typedef int (*PFUN)(int);

PFUN pf;

根據(jù)以上推理:

PFUN 是函數(shù)指針類型,該指針類型指向返回值類型為int,參數(shù)類型為int的函數(shù), 用PFUN這個類型去定義變量pf,此時的pf是函數(shù)指針變量,這個變量是指向返回值為int,形參類型為int的一類函數(shù)。

程序執(zhí)行結(jié)果:

上一篇:Anddroid App和Java Web服務(wù)器間數(shù)據(jù)交互 之Android App搭建

下一篇:理解C語言的聲明

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部