typedef 類型 定義名;
typedef 只為現有數據類型起新名字,不創建新類型。類型可以是 Turbo C 允許的任何類型。
typedef int SIGNED_INT;
SIGNED_INT i, j; // 等效於 int i, j;
// long SIGNED_INT i, j; // 非法
定義結構體別名,便於直接用別名聲明變量:
typedef struct {
char name[8];
int class;
char subclass[6];
float math, phys, chem, engl, biol;
} student;
student Liuqi; // 直接定義結構變量
標準庫中 FILE 即為 typedef 定義的結構體別名,定義於 stdio.h:
typedef struct {
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned char *curp;
unsigned istemp;
short token;
} FILE;
用戶只需 FILE *fp; 即可聲明文件指針。引入 typedef 主要為程序移植便利,而非單純為方便。