在KEIL4定义结构体,引用的时候报错

2020-01-18 18:47发布

在disp.h里面定义了这样的结构体
typedef struct
{
            unsigned int MultiDispMsCount; //累积时间
        unsigned int ChangeTimeCount;
            unsigned char LedComNum        ;
            unsigned char ScanT;
        unsigned int WaitDispCount;  
        unsigned char DataBufLeft[2];  //左边数码管数据缓存
        unsigned char DataBufRight[2]; //右边数码管数据缓存      
        unsigned int  ModeChangeTimeCount;
}SYS_TASK_DISP_FORMAT;

extern SYS_TASK_DISP_FORMAT Disp;  

然后在disp_function.c里面调用了这个disp.h文件,
并且做了这样的声明SYS_TASK_DISP_FORMAT Disp;
Disp.DataBufLeft[0]为什么这样引用会报错,,,但是我同意的写法用IAR编译就不会报错,得到的就是正确的结果
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
Llinuxu
1楼-- · 2020-01-19 13:11
看起来不应该报错,但是你得把报的什么错发出来才能给你找问题啊!
qllaoda1
2楼-- · 2020-01-19 17:47
 精彩回答 2  元偷偷看……
zjjhzj19711129
3楼-- · 2020-01-19 22:22
加上
#define _MAIN_C

#ifndef _MAIN_C
程序段
#endif
lingdianhao
4楼-- · 2020-01-20 04:00
qllaoda1 发表于 2016-1-15 15:54
你在h文件里用了extern SYS_TASK_DISP_FORMAT Disp;  
在C文件里又定义了SYS_TASK_DISP_FORMAT Disp;
这就 ...

这个没问题啊。
extern只是变量声明而已。
SYS_TASK_DIS_FORMAT Disp是变量定义,并不冲突。
一直都这么干的。
zhangpisces
5楼-- · 2020-01-20 09:19
报的什么错,,,,
见入佳境
6楼-- · 2020-01-20 09:20
Eiman 发表于 2016-1-15 10:30
我有强迫症,开头空格数不一样,随便留空格看的不爽

这里是复制过来的,所以是这样的

一周热门 更多>