单片机及C51的sbit变量,如何实现外部文件引用,extern声明不行

2020-01-19 19:37发布

本帖最后由 bbssilverkey 于 2013-5-22 13:01 编辑

文件3个:
a.c  - 用sbit声明老了一个变量 key
a.h
_main.c - #include "a.h"  主函数调用 key这个变量,编译 显示未定义

问题:我不把sbit丢a.h不行么?当然丢a.h肯定能过编译.
请教解决方法
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
25条回答
chencc8
2020-01-20 16:08
Alimy 发表于 2013-5-22 15:59
这个我刚好会。、

a.c

还是不行呢,这两种方法都是错误的。
在HAL_UART.C中,定义了
uint8_t bdata SendFlag = FALSE;
sbit bSendFlag = SendFlag^0;
在HAL_UART.H中声明了
extern uint8_t bdata SendFlag ;
extern sbit bSendFlag;
结果在每个调用HAL_UART.H的C文件下都有一个中文意思大概是:在sbit附近有错误。

HAL_UART.H改成这样的话:
extern uint8_t bdata SendFlag ;
extern sbit bSendFlag = SendFlag^0;
还会增加一个错误:SendFlag不是有效的基地址

C51果然是挫

一周热门 更多>