一个可以声明全局变量的函数
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];
}
我正在用 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];
}