[ZLG-MCU] keil里如何把位变量定义为外部出错,怎么办?

[复制链接]
2733|4
 楼主| hero_0810 发表于 2008-1-29 09:47 | 显示全部楼层 |阅读模式
因为要在其它c文件中使用同一个位变量(标志位),所以必须将其定义为外部。<br /><br />1)在bdata中定义可位寻址字节signdat:<br />&nbsp;&nbsp;&nbsp;extern&nbsp;unsigned&nbsp;char&nbsp;bdata&nbsp;signdat=0;<br />2)然后定义位:<br />&nbsp;&nbsp;&nbsp;sbit&nbsp;task0sig&nbsp;=&nbsp;signdat^0;<br /><br />3)再然后就出错了:<br /><br />但是如果下面这样去掉“extern”就没有问题:<br />1)在bdata中定义可位寻址字节signdat:<br />&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;bdata&nbsp;signdat=0;<br />2)然后定义位:<br />&nbsp;&nbsp;&nbsp;sbit&nbsp;task0sig&nbsp;=&nbsp;signdat^0;<br /><br /><br />请问各位老师这可怎么办?<br />我必须要使同一bit变量可以在同一工程内的其它c文件中使用,因为这bit变量可能是任务标志,显示刷新标志等系统参数。<br /><br />请您务必要帮我!感激不尽!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;小刘<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QQ:382339388<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e-mail:hero_0810@163.com
 楼主| hero_0810 发表于 2008-1-29 09:53 | 显示全部楼层

不知为什么丢了张图,补传……

上传报错图片
 楼主| hero_0810 发表于 2008-1-29 11:15 | 显示全部楼层

自己的问题自己答

不知道我的推测对吗,推测答案如下,请指正:<br /><br />定义外部变量时,只需要在函数外这样定义:“类型名&nbsp;变量名;”<br />而不要在前面加“extern”;<br />而声明时,可以写成“extern&nbsp;类型名&nbsp;变量名;”<br />也可以写成“extern&nbsp;变量名;”,这两种写法等效,变量的类型取决于定义时的类型。<br /><br />对吗?<br />谢谢!
 楼主| hero_0810 发表于 2008-1-29 11:36 | 显示全部楼层

发现keil里的extern跟谭浩强老师书中介绍的稍有不同

上面说到:<br />“声明时,可以写成“extern&nbsp;类型名&nbsp;变量名;”<br />也可以写成“extern&nbsp;变量名;”,这两种写法等效”<br /><br />但是刚刚在keil里测试了一下,声明时必须用“extern&nbsp;类型名&nbsp;变量名;”这种格式。
harlemjia 发表于 2008-2-4 01:43 | 显示全部楼层

怎么只有你在说啊 ,呵呵

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

本版积分规则

19

主题

46

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部