C语言基本教程(四)指针、布局、连系和列举(18)
范例说明
范例说明的名目为:
typedef 范例 界说名;
范例说明只界说了一个数据范例的新名字而不是界说一种新的数据范例。这里范例是Turbo C许可的任何一种数据范例。界说名暗示这个范例的新名字。
譬喻: 用下面语句界说整型数的新名字:
typedef int SIGNED_INT;
利用说明后,SIGNED_INT就成为int的同义词了,此时可以用SIGNED_INT界说整型变量。
譬喻:SIGNED_INT i, j;(与int i, j等效)。
但long SIGNED_INT i, j;是犯科的。
typedef同样可用来说明布局、连系以及列举。
说明一个布局的名目为:
typedef struct{
数据范例 成员名;
数据范例 成员名;
…
} 布局名;
此时可直接用布局名界说布局变量了。譬喻:
typedef struct{
char name[8];
int class;
char subclass[6];
float math, phys, chem, engl, biol;
} student;
student Liuqi;
则Liuqi被界说为布局数组和布局指针。
在第二节讲过的文件操纵中,用到的FILE就是一个已被说明的布局,其说明如下:
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned char *curp;
unsigned istemp;
short token;
} FILE
这个布局说明已包括在stdio.h中,用户只要直接用FILE界说文件指针变量就可以。事实上,引入范例说明的目标并非为了利便, 而是为了便于措施的移植。