国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 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的類型的別名,具有了定義變量的權利。

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

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

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

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

分析: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:為結構體取別名

以前的代碼中,聲明結果體新對象時,必須帶上struct 結構體名,如:

struct stu

{

char name[20];

int age;

char sex;

};

Struct stu s1,s2;//s1,s2皆為結構體對象

使用typedef為結構體取別名:

typedef struct stu

{

char name[20];

int age;

char sex;

} STU;

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

例3:typedef int AR[5]

AR a;

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

程序運行的結果為:

例4:是為函數指針起別名

typedef int (*PFUN)(int);

PFUN pf;

根據以上推理:

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

程序執(zhí)行結果:

上一篇:Anddroid App和Java Web服務器間數據交互 之Android App搭建

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

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

回到頂部