typedef
该关键字的作用是取别名
- 为数据类型取别名:
typedef unsigned char BYTE; 则BYTE=unsigned char - 为自定义数据结构取别名:在结构体定义前加上该关键字,创建该类型变量时可以省略struct
原:struct Books{} struct Books book;
简:typedef struct Books{} Books book;
#define
- 被define取过的别名标识符不能再使用了 如为常量3.14取别名PI 那PI这个标识符不能再用于定义变量了,也不能用于定义函数等等
是c指令,也可用于为各种数据类型定义别名。但是还可以定义常量。typedef则不能
- 为数据类型取别名:
#define BYTE unsigned char - 为变量取别名:
#define a PAI ... int a=3.14 printf(PAI)->3.14 - 为常量取别名:
#define PI 3.14
- typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
- 注意取别名时typedef是
**原名前别名后**#define是**别名前原名后** - 在类型上typedef的功能远比define强大得多
