我想在两个文件之间共享一个 C++ 结构(在 Android-NDK 编程的上下文中)。在第一个中,结构被初始化,而在另一个中,它最终被使用。
所以我在头文件 struct.h 中定义结构(我包含在两个 .cpp 文件中)并将其声明为静态变量:
struct A {
int v;
A(){
v = 0;
}
}
static A structA;
然后我在第一个 i.cpp 文件中为其分配一个值,例如:Av = 5。但是当我在第二个 j.cpp 中调用它时,它仍然是 0。
整个过程是这样的:
Java 代码 -> 调用 i.cpp 并赋值 -> Java 代码 -> 调用 j.cpp 并读取值 -> 错误
但
Java 代码 -> 调用 i.cpp 并赋值 -> Java 代码 -> 调用 i.cpp 并读取值 -> 正确