gpt4 book ai didi

c - 在头文件中声明一个 extern struct 模板,以便在 c 文件中全局使用

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:25 24 4
gpt4 key购买 nike

我的目标是在我的头文件中声明和定义一个结构模板。然后我希望使用这个模板在我的 c 文件中声明和定义个人结构。

这是我的目标的粗略示例:

头文件

#include <bool.h>

extern struct options
{
extern bool aflag;
extern bool cflag;
extern bool dflag;
} option1;
...

c文件

#include "header.h"

struct options option1;
void function(void)
{
option1.aflag = true;
option1.cflag = true;
option1.dflag = true;
}
...

我希望这会导致结构 option1 全局可见。全局内容应为 aflag = truecflag = truedflag = true

当我说全局时,我的意思是内容 aflag = truecflag = truedflag = true(定义在另一个c 文件)现在应该可以在第二个 c 文件中使用,如果我愿意的话。唯一的引用是具有结构的头文件。

然而,如我所料,这个例子包含多个错误。我最近才学习结构的基础知识,不确定如何实现我正在寻找的东西,所以如果有人可以解释如何实现这种效果,可能会有代码示例,那将会很有帮助。

谢谢。

最佳答案

当您声明一个结构时,您就定义了一个类型。

如果你想让一个struct全局可见,那么你需要定义一个变量而不是类型。

所以你可以在你的 foo.h 头文件中做这样的事情:

struct foo {
int bar;
double baz;
};

extern struct foo globally_visible_foo_yay;

然后在你想要的foo.c文件中:

#include "foo.h"
struct foo globally_visible_foo_yay = {.bar = 42, .baz = 42.0};

然后在其他一些 C 文件中,您可以通过包含 header 来使用全局可见的结构。

关于c - 在头文件中声明一个 extern struct 模板,以便在 c 文件中全局使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393964/

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