位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 用typedef定義類型

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-02

typedef的使用形式如下:

    typedef  標(biāo)準(zhǔn)類型名  別名;

例如:

    typedef int INTEGER;

為標(biāo)準(zhǔn)類型int定義一個(gè)別名INTEGER,可以使用INTEGER來定義變量,如:

    INTEGER a.b;

也可以為用戶定義的結(jié)構(gòu)體等自定義類型定義一個(gè)別名,例如:

typedef struct student 

{

    int no;

    char name[10]; 

    int score;

}STU;

這樣就為一個(gè)結(jié)構(gòu)體類型struct student定義了一個(gè)別名STU。程序中凡是需要定義student類型變量或數(shù)組時(shí),都可以使用STU定義。如:

    STU s1, s2;

定義兩個(gè)student結(jié)構(gòu)體型變量s1,s2。

    STU s[10];

定義一個(gè)student結(jié)構(gòu)體型數(shù)組s,數(shù)組s中包含10個(gè)元素。

說明:

(1)用typedef只是給已有類型增加一個(gè)別名,并不能創(chuàng)造出新的類型。就如同人一樣,除大名外,可以再取一個(gè)小名、筆名、藝名等。不管使用哪個(gè)名,人還是這個(gè)人,并不能創(chuàng)造出另一個(gè)人來。

(2)typedef%#define的比較:typedef與#define有相似之處,都是用實(shí)際類型替代同義詞。 但它們實(shí)際是不一樣的,區(qū)別為typedef由編譯器在編譯時(shí)執(zhí)行的;而define是由預(yù)處理器在編譯預(yù)處理時(shí)處理的,而且只能作簡(jiǎn)單的字符串替換。

(3)因?yàn)槌绦蛑惺褂胻ypede可以定義一個(gè)更利于記憶的類型的別名,從而可以使程序更具有可讀性。

    typedef除了可以為類型定義別名外,也可以為程序的書寫帶來其他便利。例如,需要定義大量的int型、長(zhǎng)度為80的數(shù)據(jù):

    int a [10]; 

    int b [80]; 

    int c [10];

    …

這樣的定義非常繁瑣,這時(shí)就可以使用typedef簡(jiǎn)化一下:

    type int ARR[80];

    ARR a.b.c;

這段代碼的含義是,定義一個(gè)ARR為整型數(shù)組,其元素個(gè)數(shù)為80,之后用ARR定義數(shù)組a、b、c,這三個(gè)數(shù)組長(zhǎng)度都為30。

typede他可以用在定義指針中,如:

    int *pl,p2;

可能程序員本意是想定義兩個(gè)int型指針,但實(shí)際定義出來則是是指針,而p2是普通的整型變量,可以使用typedef對(duì)整型指針進(jìn)行定義:

    typedef int* POINT;

    POINT pl,p2,p3;

這種定義方式尤其在需要定義大量指針時(shí),優(yōu)點(diǎn)更加突出。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部