找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1782|回复: 7
打印 上一主题 下一主题
收起左侧

C语言extern借用问题

[复制链接]
跳转到指定楼层
楼主
ID:636538 发表于 2019-11-18 18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在函数A.C中定义unsigned int numw=0;
                               unsigned int numr=0;
在函数B.C中借用extern unsigned int numw;
                        extern unsigned int numr;
没用问题,在B.C中定义unsigned int numw=0;
                               unsigned int numr=0;
在A.C中借用就会出现引用错误外部函数


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:636538 发表于 2019-11-18 18:34 | 只看该作者
这是什么原因造成的,解决了一下午,才解决问题,compiling 时候没有错误,但KEILL未生成target
回复

使用道具 举报

板凳
ID:636538 发表于 2019-11-19 08:46 | 只看该作者
不要沉,顶上
回复

使用道具 举报

地板
ID:25310 发表于 2019-11-19 11:04 | 只看该作者
我一般不追究这个问题,它在哪里能通过就放哪里,文件多了就不好处理,
找一个文件定义变量,别的文件调用。统一管理比较方便。
回复

使用道具 举报

5#
ID:636538 发表于 2019-11-20 09:07 | 只看该作者
pcbboy 发表于 2019-11-19 11:04
我一般不追究这个问题,它在哪里能通过就放哪里,文件多了就不好处理,
找一个文件定义变量,别的文件调用 ...

也是,不纠结啦,能用就行
回复

使用道具 举报

6#
ID:583419 发表于 2020-7-14 16:09 | 只看该作者
就例如:a.c 定义变量x, b.c也定义变量x, 在c.c中调用extern x变量,编译器就有两个选择,这应该是不允许的。以上是个人看法哈。
回复

使用道具 举报

7#
ID:282850 发表于 2020-7-15 09:54 | 只看该作者
我一般按include的顺序的定义全局变量,不用extern。觉得volitale有用,前久用了,结果有警告很麻烦
回复

使用道具 举报

8#
ID:382454 发表于 2020-7-15 16:29 | 只看该作者
只要记住一点,不管在那个模块里定义了变量,只要在你当前的模块里要借用其它模块里的变量,就要在当前模块上面声明 “extern 某某变量”
就比如小明家没有米了,小明要去小李家借两斤米。那你就要在小李家里说明,我在你家借两斤米。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表