一个可以声明全局变量的函数

a function that can declare global variables

我正在用 C++ 开发一个项目,该项目需要我构建一个可变大小的内存模型。我需要将每个存储单元表示为一个全局变量。

例如,大小为 10000 的内存应该是一个包含 10000 个全局变量的向量,类型为 m0-m9999 的内存单元。 (内存单元是我定义的结构)。 通常在 C++ 中,如果我创建一个全局变量存储单元,我会在公共头文件中将其声明为 extern memory_cell m0

有没有一种方法可以编写一个函数,该函数采用内存模型的大小并为我做这个声明,而不是我必须将上面的行写 10000 次?

抱歉,也许提前致谢。

你可以使用这样的东西。 另见:How to implement multithread safe singleton in C++11 without using <mutex>

头文件memorycells.h #include

struct memory_cell
{
};

static std::vector<memory_cell>& cells()
{
    static std::vector<memory_cell> cells(100000);
    return cells;
}

源文件 #include “memory_cells.h”

main()
{
    memory_cell = cells()[42];
}