手机访问:wap.265xx.com
成都控制器开发_容易出错!C语言中的extern可不能随便使用
本文介绍c语言中关键词extern用法的一个注意事项。
在做项目开发时,在一个单片机C语言程序(用keil开发)中,如果有两个C文件,在其中一个C文件(设为a文件)定义了一个全局变量v,并在此文件里的程序段里修改此变量,在另外一个C文件(设为b文件)里用外部变量(extern)的方法引用此变量,并读取变量v,但是,在b中读取时结果变量v出错,出现乱值。
什么原因?
v在b文件里作为外部变量,被认为分配的地址在其他地方,在b文件里只是读取没有写入,实际就没有分配内存地址,从而出错。
怎么修改?
方法1,在b文件中定义此变量v,在a文件中用外部变量的方式引用变量v,在a文件里修改变量v,在b文件中回读变量v,结果正常。
这样,在b文件里定义了变量v,分配了内存地址,在a文件中引用外部变量v并进行了写入操作,也分配了内存地址,所以不出错。
方法2,最优方法,在一个c文件(如a.c)里定义全局变量v,在其h文件(a.h)里再引用为外部变量,在用到变量v的其他c文件里include a.h,这样的话不管是否读写都无问题。当然,a.c里也要include a.h。
注意:全局变量才能被外部引用,静态变量和局部变量不行的。
上一篇:南京大学学霸毕业,日线走红,请逼自己优秀然后过上生活
下一篇:人民日报金句摘抄
最近更新成人教育
- 职业教育产教融合赋能提升
- 腾讯健康:联手迈瑞医疗助推行业高质量普惠发展
- 儿童友好|“红色传承”——金华市站前小学五年级秋季研学活动
- 考生、家长速看!云南省2024年高考11月5日起报名
- 巢湖市城乡公交线路优化调整 10月20日起实施
- 自贡自流井区:密切家校合作 家校共育连心桥
- 防拐骗、防暴力、防意外……武昌水果湖二小这样教学生自护自救
- 七险二金!云南省属国有企业招人啦
- 烟台市区七个口袋公园年底全部交付
- 24日至25日,北京南部、天津、河北中部局地可达重度霾
- 自考学位证申请的条件是什么?
- 投资160亿元!德欧中心四川
- 贵州税务:加计扣除优惠政策对支持我省企业投入研发、鼓励科技创新起到重要作用
- 高通骁龙 8cx Gen 4 处理器跑分曝光,多核成绩逼近苹果 M2
- 法律职业资格考试主观题考试益阳考区首次开考
- 初级会计证考试都是选择题吗?
- 大国粮仓装满优质粮
- 把课间还给学生,“圈养”并非长久之计
- 江门鹤山:“全链条”保障好“舌尖上的安全”
- 第十届晋江市中小学生“泉州南少林五祖拳健身操”会操比赛圆满落下帷幕
- 北京市开展2023年度公开遴选和公开选调公务员工作
- 防范电信网络诈骗共建平安和谐校园
- 台庆74周年,广东广播电视台开展中医药文化进社区公益活动
- 原创CBA前三轮排名!郭士强压制老东家,新疆上升8位,北控连败露底牌
- 50%职场人群多受腱鞘炎困扰 使用人体工学键鼠有助于预防腱鞘