使用typedef可以为已有数据类型定义别名:
typedef unsigned char BYTE; // 一般将别名定义为大写
typedef struct Book
{
char title[50];
char author[50];
char subject[100];
int book_id;
} BOOK; // 这是typedef的经典应用
typedef vs #define
#define 是 C 指令,也可以用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:
- typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
- typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。