网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
广告
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月27日
漏签
0
天
单片机吧
关注:
210,292
贴子:
1,041,927
看贴
图片
吧主推荐
视频
游戏
16
回复贴,共
1
页
<<返回单片机吧
>0< 加载中...
求助帖!!单片机C语言外部变量声明和定义的问题,求大神解答!
只看楼主
收藏
回复
最后一颗恐龙蛋
上士
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如图:我在JIESHOU.H中声明和定义了sta和下面三个位定义
然后想在main函数里面用这几个位变量,就写成下面这样
结果出现了重复定义的错误,另外去掉sbit前面外部声明extern也是会出现重复定义的错误,
求大神解决!!!
被飓风席卷
大尉
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
~
chinamidsky
中校
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你把jieshou.h中的变量定义放在jieshou.c中试一下
changyuan1726
中校
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你的12864.h里有没有定义过这些
百慕紫尘
中校
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
应该不能用extern sbit这个声明,标准C里面没这个定义,把这些去掉看看
yes__mcu
中校
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
假设在某个文件中有如下定义
unsigned char bdata status;
sbit flag1 = status ^ 1;
sbit MOSI = P2^7;
其它文件如果要使用上面定义的3个变量,应当这样声明
extern unsigned char bdata status;//////////////这里声明的bdata可以不用写
extern bit flag1;
extern bit MOSI;
a673000565
中尉
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个问题我也遇到过,不容易啊
CrIFDE
少尉
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
麻烦问下楼主图里的软件是什么啊?
--妈呀,楼主是怪人
DevLab
大尉
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
建议不要在头文件里定义变量.
在你的代码中你如果要在main.c中使用那几个变量的话把等号后面的全取掉(即改为声明)就可以了. 你那样的做法相当于在头文件中定义了一个变量, 又在c文件中再次定义.
----------------------------------------------
推荐的做法:
在头文件中只做声明, 定义在对应的C文件中实现即可.
在别的模块中只要包含此头文件即可使用声明的变量/函数.
这小伙够潇洒
新兵
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在哪个.C文件中用到sbit,就定义一次!sbit可以重复定义,比如在你的jieshu.c中,sbit XX=Pxx;在12864.c中 用到这个引脚,就在12864.c中再写一次sbit XX=Pxx;
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示