typedef char * String_t
定义了一个新的类型别名,有类型检查。
#define String_d char *
只做了简单的替换,无类型检查。- 前者在编译的时候处理,后者在预编译的时候处理。
- 同时定义多个变量的时候有区别,主要区别在于这种使用方式:
String_t a,b;
String_d c,d;
a,b,c 都是char *类型,而d为char类型 - 由于typedef 还要做类型检查,#define 没有,所以typedef 比#define 安全。
转自:http://blog.youkuaiyun.com/sinat_29844779/article/details/61191501