相同点:都是用于重命名,增强可读性
不同点:
1.
define是预处理指令,在预处理时进行简单字符串替换,不检查正确性
typedef是关键字,在编译时处理,在自己的作用域中给一个存在的类型取别名
2.
define没有作用域限制
typedef有作用域限制
3.
define不仅可以给类型起别名,还可以定义常量,变量等
typedef用来定义类型别名
4.对指针的操作不同
#define INTP1 int*
typedef INTP2 int*
INTP1 p1,p2
INTP2 q1,q2
p1,p2分别为int类型指针和整型
q1,q2都为int类型指针