问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

typedef和#define的区别?

发布网友 发布时间:2022-05-19 04:12

我来回答

2个回答

热心网友 时间:2024-03-04 06:05

其实一般情况下,这两种办法都能够达到预期的效果。
但是有时候要注意define宏的副作用,比如下面这种情况:
typedef unsigned int *uint; //这时候uint是一个指向unsigned int数据的指针类型,注意这里是指针类型了
#define uint unsigned int * //下文每出现uint的时候就用unsigned int * 来代替,这是这个语句的本质原理(该宏的作用)

又如有以下语句:
uint a, b ;
如果是用上述typedef语句,则这里a,b均是一个指针变量,这个指针指向unsigned int类型的数据,
而如果用的是define语句,则这里展开后变成:
unsigned int * a, b;
这里a是一个指针了, 而b是一个unsigned int类型的数据。
注意这些就基本差不多了。
详情请参考《C陷阱与缺陷》一书6.2章!
祝你好运!

热心网友 时间:2024-03-04 06:05

如果在一个小程序里是没有区别的,都可以实现关键字的替换,但是在一个团队开发的时候,一般用TYPDEF,因为用了之后,你的队友可以用#ifndefXXX #defineXXX的形式来使用你所说的关键字替换。比较方便团队合作,这是程序编写规范的问题,不是语法问题。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... typedef和#define的基本用法 typedef和#define 的区别 oracle中xml节点抽取 请问C#如何实现Oracle数据库中指定表格数据以XML文件形式导出。 S24王者荣耀上王者巅峰赛排位赛重要吗?网上哪里去找? 王者荣耀巅峰赛代练一把需要花费多少? 王者荣耀认证一次管多久还要认证 什么牌子的吸油烟机质量好? 一袋干粮的故事反映了什么精神 一袋干粮的故事里面的主人公是谁? 读完一袋干粮这一个小故事我体会到了什么 求感人的故事一篇!急!!!~各位高人帮帮蛮!!! 一袋干粮的故事250个字以下 一袋干粮原文 一袋干粮的故事2000字 一袋干粮的复杂故事多少字 一袋干粮的故事15字 在路上经常看见快狗打车,收入高吗? 《一袋干粮》主要内容 《一袋干粮》全文 define 和typedef区别 C语言里的typedef&define有什么区别啊? #define和typedef在使用时有什么不同? 电化学加工中的电解加工,电镀加工,电解磨削这三种加工原理有什么区别 #define,typedef,sbit三个关键字分别是什么意思,举例说明? 电镀与电解有区别吗?有的话是什么区别 c语言typedef的作用是什么,我没用过。我只会define。 很多人用的香水 英语,can't have,不可以拥有,对吗? 什么样的人不可以拥有幸福? 为什么个人不可以拥有绝对超越群体的力量? 不能拥有只能选择离开这句的定义对吗? 为啥相爱不可以拥有 爱一个人却不能拥有的诗句有哪些? 百米加减档要怎么过 酷派7235手机有什么功能? 爱一个人不能拥有怎么办? 酷派7235恢复出厂设置白屏手机按恢复出厂设置然后开机白屏怎么办 六善酒店属于什么档次 喜欢一个人却不能拥有她,该怎么办?