宏定义陷阱与typedef

Posted CoverSky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宏定义陷阱与typedef相关的知识,希望对你有一定的参考价值。

#define int_ptr  int*

int_ptr  point1,point2;

 

经预处理后,第二行变为 int * point1,point2.

这就意味着,point1 是一个指向int的指针,但是 point2却是 int类型的了

所以,宏定义的连续变量的定义中 ,不能保证所有的变量为同一样的类型!!

typedef不同,他可以保证连续性。

typedef char * String

String str1,str2;

--------------------------------------------------------------------------------------------

另外:

#define INT int

unsigned INT number;

这句话是没有问题。

但是:

typedef int INT

unsigned INT number;

这就是错误操作!

以上是关于宏定义陷阱与typedef的主要内容,如果未能解决你的问题,请参考以下文章

C语言陷阱与技巧第18节,函数式宏定义的“缺陷”,没有参数类型检查,产生多次副作用怎么办?

C语言陷阱与技巧第7节,define函数式宏定义不能用普通函数代替吗?为什么要使用do{}while包裹代码

typedef与define宏定义用于声明新的类型之间的区别

typedef关键字

《C陷阱与缺陷》实验记录

C语言typedef详解