A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© MEIMEIAA 中级黑马   /  2015-8-7 01:07  /  1570 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#define是在预处理完成的,typede是在编译时处理的,它不是作用简单的代换,而是对类型说明符重新命名,被命名的标识符具有类型定义说明的功能!
被命名的标识符具有定义说明的功能是什么意思
可以理解为
例:typede int a
     a b=0;
给int起的别名是a,再用a去定义一个变量吗?
求解,还有其他的区别吗?

11 个回复

倒序浏览
没人理我,哎!是不是很简单的东西啊!
回复 使用道具 举报
typedef和宏它们针对的软件都不一样.
宏是预处理器的任务, 比如说:#define A 10, 预处理器在读取这行后, 它会把程序以后的所有大写字母A都替换成10(需要全字匹配). 我们写的代码必须通过预处理器处理后, 才会被编译器编译.

而typedef是针对的编译器, 不是预处理器的任务. 编译器读取typedef unsigned int UINT;后, 它会在以后的代码中, 认为UINT就是unsigned int, 也就是说对编译器来讲又多了一种数据类型, 但是这种数据类型和unsigned int是一样的.
回复 使用道具 举报
挺好的啊,楼主加油哦
回复 使用道具 举报
还没看到这呢关键。。。。
回复 使用道具 举报
花漾 发表于 2015-8-7 21:41
typedef和宏它们针对的软件都不一样.
宏是预处理器的任务, 比如说:#define A 10, 预处理器在读取这行后, 它 ...

谢谢!知道了  一直有点绕  {:2_39:}
回复 使用道具 举报
同新手,说一下自己的理解,如果有什么不对的地方欢迎指出。
比如#define a 10 简单来说就是在编译前使用类似于文本编辑中的替换功能将所有的a替换成10
而typedef是在编译时处理的,它在自己的作用域内给一个已经存在的类型一个别名,就像是你的小名一样。
回复 使用道具 举报
MoonLove 发表于 2015-8-8 10:19
同新手,说一下自己的理解,如果有什么不对的地方欢迎指出。
比如#define a 10 简单来说就是在编译前使用类 ...

谢谢!理解了  一起加油!
回复 使用道具 举报
墨琰 发表于 2015-8-7 22:02
挺好的啊,楼主加油哦

好的,一起加油!
回复 使用道具 举报
xuyue 中级黑马 2015-8-14 19:28:09
10#
我仔细看下啊
回复 使用道具 举报
学习学习!
回复 使用道具 举报
DUKEMAN 来自手机 中级黑马 2015-8-15 08:21:22
12#
花漾 发表于 2015-8-7 21:41
typedef和宏它们针对的软件都不一样.
宏是预处理器的任务, 比如说:#define A 10, 预处理器在读取这行后, 它 ...

在新手报道那儿见过层主头像
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马