7.4 用戶自定義類型
C語言也提供類型定義外化成為類型命名的機(jī)制。讓用戶定義新的類型,并用這些新類型定義變量。用戶自定義類型的方法為:
typedef 類型 用戶自定義類型名;
其中類型可以是基本類型,也可以是前面用戶自定義的類型,也還可以是任何C語言允許的類型描述,如數(shù)組類型、結(jié)構(gòu)型、共用型、枚舉型,及各種指針類型。用戶自定義類型名是標(biāo)識符,以后就可用該用戶自定義類型名定義相應(yīng)類型的變量。例如:
typedef int INTEGER;
tyPedef struet {
int num;
char * name;
char sex;
int age;
int score;
} stdType; /*定義結(jié)構(gòu)型stdType */
typedef int INTARRAy[20] ; /* 含 20個(gè)整數(shù)的數(shù)組類型 INTARRAY */
typedef enum { RED, YELLOW, BLUE } COLOR; /* 枚舉型COLOR */
typedef char *CHP; /* 定義字符指針類型CHP */
利用以上類型定義,可定義變量如下:
INTEGER X,Y; /* 定義int類型變量 x和 y */
stdType std1,std2; /* 定義兩個(gè)結(jié)構(gòu)變量 */
INTARRAY v1, v2; /* 定義兩個(gè)各含20個(gè)整數(shù)的數(shù)組 */
COLOR c1,c2; /* 定義兩個(gè)枚舉變量 */
CHP cp1, cp2; /* 定義字符指針變量cpl和cp2 */
在以上變量定義中,對于結(jié)構(gòu)、枚舉等類型,不必再冠相應(yīng)的類型類別關(guān)鍵字。特別對于數(shù)組類型,當(dāng)有多個(gè)數(shù)組變量成員類型相同、數(shù)組元素個(gè)數(shù)也相同時(shí),先用typedef定義一個(gè)數(shù)組類型,然后再定義數(shù)組變量就比較方便、簡潔。
通常,在組織復(fù)雜的程序時(shí),不同源程序文件中用到的同一數(shù)據(jù)類型,如數(shù)組、結(jié)構(gòu)、共用型、指針等,常用外typedef定義來給有關(guān)數(shù)據(jù)類型命名,并將這些類型定義單獨(dú)放在一個(gè)源文件中,凡要用到它們的源文件,就用# include預(yù)處理命令將它包含進(jìn)來。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |