gpt4 book ai didi

c - 在一个头文件中定义结构并在另一个头文件中使用它时出现结构错误

转载 作者:行者123 更新时间:2023-11-30 17:52:40 25 4
gpt4 key购买 nike

我有 4 个文件= pic.h、main.c、framehandle.c 和framehandle.h

pic.h 和framehandle.h 都包含在我的main 中:

#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 标志;应该告诉编译器去其他地方寻找减速吗?将其放在主题标题中不是正确的位置吗?

--编辑--

我正在添加包含文件和变量 declarations 的序列

#include "pic.h"
#include "framehandling.h"

struct f flag;

void main(void)
{ }

最佳答案

这取决于您是否在 main.c 中将 struct f flag; 声明为全局或局部。如果在函数内部声明它,则必须将声明移到函数外部。

关于c - 在一个头文件中定义结构并在另一个头文件中使用它时出现结构错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com