我有 4 个文件 = pic.h、main.c、framehandle.c 和 framehandle.h
pic.h 和 framehandle.h 都包含在我的主目录中:
#include "pic.h"
#include "framehandling.h"
pic.h 具有以下结构定义。
struct f
{
unsigned sleep : 1;
unsigned push : 1;
unsigned rx : 1;
unsigned tx : 1;
unsigned validPacket : 1;
};
我在我的 main.c 文件中使用
struct f flag;
当我尝试在 framehandle.c 中使用它时,我得到一个我理解的未声明的错误。
为了解决这个问题,我在 framehandle.h 中添加了以下内容:
extern struct f flag;
但是编译器仍然抱怨没有在 framehandle.c 中声明标志
我究竟做错了什么?不会 extern struct f 标志;应该告诉编译器在其他地方寻找声明?不会把它放在主题标题中是正确的地方吗?
- 编辑 -
我正在添加我的包含文件的序列和我的变量声明
#include "pic.h"
#include "framehandling.h"
struct f flag;
void main(void)
{ }