gpt4 book ai didi

c++ - 在多个 Cpp 文件中使用变量

转载 作者:行者123 更新时间:2023-11-28 00:54:50 25 4
gpt4 key购买 nike

搜索了足够多的答案,但没有一个解决方案适合我。

场景:我试图包含一个 .h 文件,其中声明了一些函数(未定义)和声明了一些变量。

如果我将这个头文件包含在实际使用函数和变量的源文件(准确地说是 2 个)中,那么最后一个编译的文件会出现链接器错误,指出

undefined reference to `abc::myfun(char const*, char const*, char*)'

头文件中的所有函数和变量都已声明为 extern 并且存在包含保护。

我希望有一个 cpp 文件在 .h 文件和另一个 cpp 文件中定义的变量中放入一个值以便能够读取它。

此外,如果有帮助,我的每一段代码都在我定义的命名空间中(namespace abc{//all my code, in all the files })

最佳答案

声明在你的.h文件正是这样做的——让编译器知道您计划在“某处”声明的对象。该“某处”将是一个编译单元(.c.cpp 文件),其中将定义该变量。

这是一个示例(为简单起见跳过守卫):

foo.h :

extern int global_foo;

foo.c :

#include "foo.h"
int global_foo; // optionally you can initialize like this: int global_foo = 123;

main.c :

#include "foo.h"
void bar()
{
global_foo = 0; // accessing that variable which is "outside" of this file

正如上面提到的 paddy - 确保你没有意外嵌套命名空间,因为 abc::somethingabc::abc::something 不同

关于c++ - 在多个 Cpp 文件中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064879/

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