中易网

typedef和#define的区别?

答案:2  悬赏:70  
解决时间 2021-01-18 10:25
typedef和#define的区别?
最佳答案
其实一般情况下,这两种办法都能够达到预期的效果。
但是有时候要注意define宏的副作用,比如下面这种情况:
typedefunsigned int*uint; //这时候uint是一个指向unsigned int数据的指针类型,注意这里是指针类型了
#define uint unsigned int *//下文每出现uint的时候就用unsigned int * 来代替,这是这个语句的本质原理(该宏的作用)

又如有以下语句:
uinta, b ;
如果是用上述typedef语句,则这里a,b均是一个指针变量,这个指针指向unsigned int类型的数据,
而如果用的是define语句,则这里展开后变成:
unsigned int * a, b;
这里a是一个指针了, 而b是一个unsignedint类型的数据。
注意这些就基本差不多了。
详情请参考《C陷阱与缺陷》一书6.2章!
祝你好运!
全部回答
如果在一个小程序里是没有区别的,都可以实现关键字的替换,但是在一个团队开发的时候,一般用TYPDEF,因为用了之后,你的队友可以用#ifndefXXX#defineXXX的形式来使用你所说的关键字替换。比较方便团队合作,这是程序编写规范的问题,不是语法问题。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
非礼和抢劫罪判多少年
人们为何要从冬至开始“数九” 有哪些有趣的
机械加工中管罗纹G3/4和R3/4有什么不
陕西西凤凤瑞祥45度绵柔凤香型酒价格行情 -
高速上前胎爆胎和后胎爆胎处理方法有什么不同
小米ai音箱 可以做什么
word里面用双栏,文字在左栏,批注在右栏页面
鼎盛货物运输公司怎么去啊,有事要去办理
标注990的银杯可以喝水吗
远古时代有什么动物?
广德县广信物流有限公司地址在什么地方,想过
古龙群侠传2手游如何合成宝石 古龙群侠传手游
439上商丘市一高拿多少钱
情人节送暗恋对象什么礼物好
创业大厦停车场地址好找么,我有些事要过去
推荐资讯
limx→0√2一√丨 cos ⅹ÷(sⅰnx)チ0&
求lol名字,要简单悦耳,3~4个字,要常用字词
我的电脑玩游戏巨卡,大家给参谋下怎么提升一
九个字的唯美句子
八字命理 日元极弱 喜用神
交城庞泉沟鹏丽酒店地址在哪,我要去那里办事
最近想要出去玩,求推荐出游必备的万能护肤品
csol美服怎么充值啊
头发什么颜色
口语交际:向大家介绍一下你最喜欢的少儿节目
深圳积分入户有什么福利吗.本人深漂
凤阳县宫集中学地址在什么地方,我要处理点事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?