typedef与define的区别
1、在执行时间上
关键字typedef在编译时处理,有类型检查的功能;#define则是宏定义,在预处理阶段(也就是在编译之前)进行简单的字符串替换,不进行任何检查
2、功能上
typedef用来定义类型的别名,定义与平台无关的数据类型,与struct的结合使用;#define不只是可以为类型取别名,还可以定义常量,变量和编译开关等。
3、作用域上
#define没有作用域限制,定义过的宏在之后的程序都可以调用;typedef有自己的作用域(在定义函数内)
4、对指针操作上
typedef int*pint;
#define PINT int*
int i1 = 1;
int i2 = 2;
const pint P1 = &i1; //p不可以更改,p指向的内容可以更改
const PINT p2 = &i2; //p可以更改,p指向的内容不可以更改