打印

请问,keil中这样定义外部位变量出错,怎么办?

[复制链接]
2456|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hero_0810|  楼主 | 2008-1-29 10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为要在其它c文件中使用同一个位变量(标志位),所以必须将其定义为外部。

1)在bdata中定义可位寻址字节signdat:
   extern unsigned char bdata signdat=0;
2)然后定义位:
   sbit task0sig = signdat^0;

3)再然后就出错了:

但是如果下面这样去掉“extern”就没有问题:
1)在bdata中定义可位寻址字节signdat:
   unsigned char bdata signdat=0;
2)然后定义位:
   sbit task0sig = signdat^0;


请问各位老师这可怎么办?
我必须要使同一bit变量可以在同一工程内的其它c文件中使用,因为这bit变量可能是任务标志,显示刷新标志等系统参数。

请您务必要帮我!感激不尽!
                                               小刘
                                        QQ:382339388
                                    e-mail:hero_0810@163.com


 
 

相关帖子

沙发
ayb_ice| | 2008-1-29 11:18 | 只看该作者

声明的外部变量不能初始化

而且sbit定义要在定义变量的时候一起定义。。。

使用特权

评论回复
板凳
happystar| | 2008-1-29 12:33 | 只看该作者

你这样定义

比如在
源文件original_file.c中
   unsigned char bdata signdat=0;
   sbit task0sig = signdat^0; 
在目标文件中object.c中引入
   extern bit task0sig;

这样保证没错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

46

帖子

0

粉丝