黑马程序员技术交流社区

标题: #define和typedef的差别在哪,感觉不一样,求举个例子 [打印本页]

作者: lhy1992    时间: 2016-3-18 12:17
标题: #define和typedef的差别在哪,感觉不一样,求举个例子
#define和typeddef求指导!

作者: 吴振伟    时间: 2016-3-18 13:23
前一个是预处理指令,后一个是把一个名字长的重新改个名字,是编译过程中的
作者: lhy1992    时间: 2016-3-18 13:47
吴振伟 发表于 2016-3-18 13:23
前一个是预处理指令,后一个是把一个名字长的重新改个名字,是编译过程中的 ...

还是不太明白 啊,一个编译前改?一个编译的时候改?
作者: 外号狐狸    时间: 2016-3-18 20:31
#define 你就理解是替换,你怎么定义的,所放在的地方就变成什么。
typedef 是给一个类型另起一个别名,使用时用这个别名来代替对应类型的所有功能

所以两个都可以起别名,预处理指令起别名其实是做了一次简单的替换。
而typedef所起的类别名就可以用这个类型来正常定义
举例:
#define Iv  int*
typedef int* Iv2;

Iv a ,b;  // 可以理解为int* a, b;b只是普通变量
IV2 c,d;// 可以理解为int* c; int* d;
作者: dx206    时间: 2016-3-18 22:25
看大神回复
作者: lhy1992    时间: 2016-3-21 18:26
外号狐狸 发表于 2016-3-18 20:31
#define 你就理解是替换,你怎么定义的,所放在的地方就变成什么。
typedef 是给一个类型另起一个别名,使 ...

谢谢大神
作者: lhy1992    时间: 2016-3-21 18:27
dx206 发表于 2016-3-18 22:25
看大神回复

一起学习,共同进步。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2