例如:
typedef char * String_t;
#define String_d char *
- typedef char *String_t 定义了一个新的类型别名,有类型检查
- #define String_d char * 只是做了个简单的替换,无类型检查
- 前者在编译的时候处理,后者在预编译(预处理)的时候处理
- 同时定义多个变量的时候有区别,主要区别在于这种使用方式
String_t a,b;
String_d c,d;
a,b ,c 都是char*类型,而d 为char 类型
一般都遵循#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字、冗长的类型的别名。(推荐typedef)