7.4 用户自界说类型 C说话也供给类型界说外化成为类型命名的机制。让用户界说新的类型,并用这些新类型界说变量。用户自界说类型的体例为:3 ^ X3 p. t# e, r L
typedef 类型 用户自界说类型名;6 f! Z! B, R3 _7 G; y9 R
其中类型可所以根基类型,也可所以前面用户自界说的类型,也还可所以任何C说话许可的类型描述,如数组类型、结构型、共用型、列举型,及各类指针类型。用户自界说类型名是标识符,往后就可用该用户自界说类型名界说响应类型的变量。例如:
9 p% H% v/ r. t8 t" ~4 ^/ ~ typedef int INTEGER;4 Y/ |: M* _( O1 B I2 r' n
tyPedef struet {) P( n2 J: U* Z" y* O! j$ `
int num;
9 P1 E9 g% ^$ d! e+ H7 i% F char * name;. D" w" }* H6 t* b3 C
char sex;
, J( {6 k. s7 }9 h4 C) u' f& p8 J int age;
/ I" h' w4 t0 b& q+ V" T( f% K int score;* S4 c2 N* j( ], d
} stdType; /*界说结构型stdType */
6 ]2 P% {& r6 P7 |: L0 R4 i typedef int INTARRAy[20] ; /* 含 20个整数的数组类型 INTARRAY */- O( _' X) L- P+ Q6 y
typedef enum { RED, YELLOW, BLUE } COLOR; /* 列举型COLOR */& }! N$ `6 U7 q: U$ S9 ~
typedef char *CHP; /* 界说字符指针类型CHP */; a2 f9 r! J( V6 C2 H4 j; F" }- n
操作以上类型界说,可界说变量如下:
4 d' b( ]0 ?) j. ~/ _! ]* ]# y INTEGER X,Y; /* 界说int类型变量 x和 y */$ [/ Y8 P2 E2 f/ n+ ?
stdType std1,std2; /* 界说两个结构变量 */. [) V" Q& i, R+ S0 i
INTARRAY v1, v2; /* 界说两个各含20个整数的数组 */* b( i) L5 S, A6 v
COLOR c1,c2; /* 界说两个列举变量 */! J( g( @$ E3 y8 u
CHP cp1, cp2; /* 界说字符指针变量cpl和cp2 */! O- o# F+ e0 |' F* b+ x/ Z
在以上变量界说中,对于结构、列举等类型,不必再冠响应的类型类别关头字。出格对于数组类型,当有多个数组变量成员类型不异、数组元素个数也不异时,先用typedef界说一个数组类型,然后再界说数组变量就斗劲便利、精练。& a7 m0 ` R# G6 V" a0 m: u) z2 `
凡是,在组织复杂的轨范时,分歧源轨范文件顶用到的统一数据类型,如数组、结构、共用型、指针等,常用外typedef界说来给有关数据类型命名,并将这些类型界说零丁放在一个源文件中,凡要用到它们的源文件,就用# include预措置呼吁将它包含进来。 |