我正在尝试修改 MIPS 模拟器以在运行时显示其寄存器的内容。我的问题是指我计划这样做的方式。所以……
我有一个文件,file1.cpp 和 file2.cpp。 file1.cpp 中有一个本地公共(public)变量,名为
typedef long ValueGPR;
ValueGPR reg[33];
我想在 file2.cpp 中访问。这些文件中的每一个都有一个头文件。 File2.cpp 包含一个函数,该函数逐条迭代地跟踪程序指令的执行,使其成为插入 printf("REG[%d]:%d\n",i,reg[i]); 的完美位置。声明或类似的东西,但 reg 是 file1.cpp 中的局部变量。如何将允许我访问此 reg 变量的内容拼接在一起?
这两个文件实际上是这样的(在仔细考虑之后): “文件 1.h”
typedef long ValueGPR;
...
class ThreadContext {
...
public:
ValueGPR reg[33];
...
...
}
...
“文件2.cpp”
...
#include ".../ThreadContext.h"
...
long ExecutionFlow::exeInst(void) {
...
//ADD PRINTF OF reg[1] - reg[32] HERE
...
}
...
最佳答案
我会将 typedef 连同以下声明一起移动到 file1.h 中:
extern ValueGPR reg[];
将 ValueGPR reg[33];
留在 file1.cpp 中。
关于c++ - 全局使用公共(public)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3187843/