纠纷奇闻作文社交美文家庭
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

C语言之define与typedef有什么区别?

8月4日 亡命徒投稿
  define
  define是预处理指令,在编译时不进行任何检查,只进行简单的替换
  宏定义的一般形式为:define宏名字符串
  这里所说的字符串是一般意义上的字符序列,不要和C语言中的字符串等同,它不需要双引号。typedef
  typedef是在C语言中用来为复杂的声明定义简单的别名,它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。
  typedef取别名的一般形式为:typedef旧名字新名字define与typedef的区别
  (1)define之后不带分号,typedef之后带分号。
  (2)define可以使用其他类型说明符对宏类型名进行扩展,而typedef不能这样做。如:defineINT1intunsignedINT1n;没问题typedefintINT2;unsignedINT2n;有问题
  INT1可以使用类型说明符unsigned进行扩展,而INT2不能使用unsigned进行扩展。
  (3)在连续定义几个变量的时候,typedef能够保证定义的所有变量均为同一类型,而define则无法保证。如:definePINT1PINT1p1,p2;即intp1,p2;typedetintPINT2;PINT2p1,p2;p1、p2类型相同
  PINT1定义的p1与p2类型不同,即p1为指向整形的指针变量,p2为整形变量;PINT2定义的p1与p2类型相同,即都是指向int类型的指针。
  下面看一个关于typedef的重要的问题。请看代码:includestdio。htypedefcharpSintmain(void){charstring〔4〕第一行代码constcharp1第二行代码constpStrp2第三行代码p1;第四行代码p2;第五行代码return0;}
  这段代码编译会报一个错误:error:incrementofreadonlyvariablep2,你知道问题出在哪吗?
  答案与解析:
  是第五行代码p2出错了。这个问题提醒我们:typedef和define不同,它不是简单的文本替换。上述代码中constpStrp2并不等于constcharp2。constpStrp2和pStrconstp2本质上没有区别,都是对变量进行只读限制,只不过此处变量p2的数据类型是我们自己定义的而不是系统固有类型而已。
  因此,constpStrp2的含义是:限定数据类型为char的变量p2为只读,即为charconstp2,表明p2是一个指向char类型的常指针,所以p2是不可修改的,因此p2错误。
  顺便提一下关于const声明的一些例子及其含义:
  a是常数,不可改变;
  b是常数,不可改变;
  c是一个指向整型常数的指针,指针可以变,指针指向的内容不可以变;
  d是一个指向整型变量的常指针,指针不可以变,指针指向的内容可以变;
  e是一个指向整型常数的常指针,指针与指针指向的内容都不可变。
  往期好文:
  实用分享几个非常实用的开源项目
  分享一个有趣的库,让你学习C语言不会觉得那么枯燥
  分享GitHub上一位老外的嵌入式C编码规范(收藏细读)
  我整理了一个嵌入式资料库,大家有什么好资料分享?可以给我留言,我把它加进去,资源共享,一起来完善这个资料库!
  (资料库链接:
  https:gitee。comzhengnianliEmbedSummary)
搜索 投诉 评论 转载

从功能到智能,看何为高机中的智能机?您是否经历过大哥大时代?转眼之间,从移动电话诞生初期的大哥大,发展到人手一台的智能手机,看着单色屏幕与按着拨号按键的记忆早已被我们淡忘。。。您用过那几款?随着……11月工资将上调10?多地实行新的标准,4类人将受益,有你吗从今年下半年开始,国家已经有十一个省份陆续发出公告,要开始上调工资标准,这一消息可谓是大快人心。本次上调工资可以看出国家经济水平的提高,国家越来越富了,也希望能带动广大的群众越……大众出行引入阿里4000万增资前三季亏1250万投后估值达4长江商报奔腾新闻记者蔡嘉又有网约车平台获得互联网巨头入股。11月17日晚间,大众交通(600611。SH)披露,为进一步推动现有业务和拟开展业务的发展,公司旗下大众……C语言之define与typedef有什么区别?definedefine是预处理指令,在编译时不进行任何检查,只进行简单的替换宏定义的一般形式为:define宏名字符串这里所说的字符串是一般意义上的字符序列……苹果官网的以旧换新活动真的合适吗?随着苹果13系列的发布,苹果的12系列官网进行降价促销处理,降价幅度高达1200元,也足以显示出了苹果对中国用户的促销力度,很多第一时间想拿到新款产品的小伙伴,会选择官网进行购……为什么中国移动信号质量差收费贵,还有那么多人在用中国移动?很多朋友在说自己所在的地区移动还是差一些,也有很多朋友支持移动信号好的观点。总体来说,看来三个运营商都有自己的优势市场,这倒也正常,毕竟中国这么大,国家为了避免重复建设造成资源……汽车熄火前要不要关空调音乐?别上网找了,你想知道的都在这里很多爱车的朋友会在网上查资料,车辆熄火前要不要关掉音乐?要不要关掉空调?不关的话,下次启动车,会不会伤电瓶?会不会有危害?诸如此类的疑问网上有很多啊。今天小木就来和大家说一说,……新买的手机号,已经被别人注册了微信号,怎么办?手机号在你手上怕啥,养肥了,里面金额都是你的〔呲牙〕你把里面都改了,他没机会再找的回去了想要一个新微信还不是简单的事儿。首先你用手机登这个微信,去钱包里看看有没有钱……拼多多又发补贴了,一年一度的嘉年华超级补贴疯狂感谢大家观看阅读,希望大家多多支持我。最近,很多朋友都在问纪大哥:你有什么手机推荐吗?买一台新机器最合适的价格在哪里??秋天可能是收获的季节,所以每个人的钱包都满了……动力澎湃还省油,这样的2021款天籁,搁谁谁不爱?近几年,汽车市场竞争日益激烈,消费者对汽车的要求也变得越来越高。在大家心目中,一款拥有强悍动力表现的车,才是名副其实的梦想座驾。放眼当下的汽车市场,天籁2021款凭借澎湃动力表……腾讯买狗还王小川撰文何芙蓉编辑吴先之北京时间9月24日,搜狐宣布出售所持有的搜狗所有A类普通股及B类普通股,交易价为每股9美元,搜狐收到约11。8亿美元现金总对价,不再持有搜狗任何……华为手机的价格为什么比较高?品控好,民族企业,值得信任是利用现在的形势多赚钱热度一散就没钱赚了其实出过一些疏油层以次充好的问题都没有解决很简单,因为投入了资金,要回报。商品不是做慈善,能赚钱才……
除了狗狗币,还有哪些潜在的马斯克概念股?借势新能源风口锂电铜箔需求旺盛富二代身份曝光热议富人那么容易成功,普通人还有必要努力吗?沉寂五年,乐视反向营销宣布全员涨薪,微博后台全是投简历私信官宣第二代小米OLED电视通过GSYNC专业游戏认证RokidGlass直面质疑,赌上未来!一眼就萌到心里,黑爵毛茸茸软绵绵主题机械键盘开箱中秋节前,茅台酒价格为何反而暴跌?中东地区DNA的研究揭示了该地域复杂的人类历史好软件低调使用,知道得太多就不免费了游戏耳机竟有如此颜值?HAKII游侠游戏耳机小K测评第六期挑选挖矿显卡教程(六款主流卡合集)
秋季钓鱼用果酸行吗?男人吃醋的表现吃醋男人的八种表现方式上海菜鸟驿站正复工复产,开始配送天猫超市包裹做菜不能乱放这些佐料李卫平牡丹卡不走寻常路2030年!中国将送宇航员登上月球?月球上隐藏着什么秘密?曹植和甄宓之间真的有私情吗历史上的真实情况是怎样Uber推出多项安全功能包括在乘车过程中录制音频的功能老人夜间喝水能远离中风危险吗老迈造句用老迈造句大全MOTOXT535电池怎么样吴根友:近10年海外儒学研究(2001)

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形