c++ - 全局使用公共(public)变量

标签 c++ header include public

我正在尝试修改 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/

相关文章:

C++,如何在派生类中调用基类的重载提取运算符?

c++ - 应用程序应该如何在 64 位和 32 位英特尔架构中执行?

c++ - ATMega328P 和 ESP8266ex 之间的 I2c 通信只能发送 8 个字节,bug?

c++ - 一个对象可以被认为是一个变量吗?

c++ - Template Class : error C4430: missing type specifier - int assumed. 注意:C++不支持default-int

c++ - 在不使用 #include 的情况下使用另一个类中的函数

php - 在 PHP 中加载依赖项的正确方法是什么?

c++ - 如何将一个自创建的类包含在另一个自创建的类的头文件中?

perl - 应该使用CGI.pm的header方法来输出Content-Type header吗?

PHP 正则表达式搜索包含,然后在找到它们的地方写入包含