gpt4 book ai didi

c++ - 在两个文件之间共享 C++ 结构

转载 作者:行者123 更新时间:2023-11-28 03:26:42 24 4
gpt4 key购买 nike

我想在两个文件之间共享一个 C++ 结构(在 Android-NDK 编程的上下文中)。在第一个中,结构被初始化,在另一个中,它最终被使用。

所以我在头文件 struct.h 中定义结构(我将其包含在两个 .cpp 文件中)并将其声明为静态变量:

struct A {
int v;
A(){
v = 0;
}
}

static A structA;

然后我在第一个 i.cpp 文件中给它赋值,例如:A.v = 5。但是当我在第二个 j.cpp 中调用它时,它仍然是 0。

整个过程是这样的:

Java 代码 -> 调用 i.cpp 并赋值 -> Java 代码 -> 调用 j.cpp 并读取值 -> 错误

但是

Java 代码 -> 调用 i.cpp 并赋值 -> Java 代码 -> 调用 i.cpp 并读取值 -> 正确

最佳答案

这是因为声明变量structA时使用了static关键字。这使得包含头文件的每个源文件中的变量都是唯一的。

如果您声明变量 extern 而不是 static,并在一个源文件中定义它(没有 staticextern) 你应该会看到它有效。

关于c++ - 在两个文件之间共享 C++ 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13724109/

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