gpt4 book ai didi

c - .o 文件中的多重定义错误

转载 作者:太空狗 更新时间:2023-10-29 15:20:22 26 4
gpt4 key购买 nike

我有一个 a.h 文件,我在其中声明了很多结构。我在 a.c 文件中初始化这些结构(我已经包含了 a.h 文件)并且我想在另一个 b.c 文件中重用相同的 a.h 文件。当我在 b.c 中包含头文件 a.h 时,我得到了多重定义错误。请帮助我如何防止此问题并在两个 .c 文件中重用相同的 .h 文件。

最佳答案

您绝不能在头文件中实例化任何东西,即永远不要定义任何东西,只需声明它们即可。

您应该在一个 C 文件中放置每个声明事物的单个定义,并在共享 header 中包含extern 声明:

mydata.h中:

struct Foo {
float baryness;
float baziness;
};

extern struct Foo TheFoo;

一个 C 文件中:

#include "mydata.h"

struct Foo TheFoo;

在项目的其他 header 中:

#include "mydata.h"

printf("the baziness is %f right now\n", TheFoo.baziness);

关于c - .o 文件中的多重定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206367/

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