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

C語言 用typedef定義類型

提問人:劉團圓發(fā)布時間:2020-12-02

typedef的使用形式如下:

    typedef  標準類型名  別名;

例如:

    typedef int INTEGER;

為標準類型int定義一個別名INTEGER,可以使用INTEGER來定義變量,如:

    INTEGER a.b;

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

typedef struct student 

{

    int no;

    char name[10]; 

    int score;

}STU;

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

    STU s1, s2;

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

    STU s[10];

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

說明:

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

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

(3)因為程序中使用typede可以定義一個更利于記憶的類型的別名,從而可以使程序更具有可讀性。

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

    int a [10]; 

    int b [80]; 

    int c [10];

    …

這樣的定義非常繁瑣,這時就可以使用typedef簡化一下:

    type int ARR[80];

    ARR a.b.c;

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

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

    int *pl,p2;

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

    typedef int* POINT;

    POINT pl,p2,p3;

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

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

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