赞
踩
typedef和define都是替一个对象取一个别名。
#define成了预编译指令,typedef当成语句处理。Typedef和define都可以用来给对象取一个别名,但是两者却有着很大不同。
1.#define和typedef原理不同
2.#define和typedef二者执行时间不同
3.#define没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。而typedef有自己的作用域。
4.#define和typede二者修饰指针类型时,作用不同
Typedef int* print;
#define PRINT int*
Const pint p;//p不可更改,p指向的内容可以更改,空间不能改,相当于 int * const p;
Const PRINT p;//p可以更改,p指向的内容不能更改,空间可以更改,相当于 const int *p;或 int const *p;
print s1, s2; //s1和s2都是int型指针
PRINT s3, s4; //相当于int* s3,s4;只有一个是指针,s3是指针,s4不是。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。