const与宏观和内存寿命

Neb*_*Fox 1 c c++

由于脚本的原因,我有一个巨大的数组.它基本上是一个转换为数组的图像文件.

我可以将主体定义为宏或将其放入标头中的const类型.如果我把它设置为const,那么内存寿命是多少?它是否适用于整个计划?它是否会持续使用它的范围,就像在函数中一样?使用宏是一个更好的选择吗?

Jer*_*fin 9

我将数组定义移动到源文件(可能是自己):

// bitmap.cpp
char const my_bitmap[] = {
   0x12, 0x34, 0x56, // lots of data here...
};
Run Code Online (Sandbox Code Playgroud)

然后编写一个只有 extern声明的标题:

//bitmap.h
extern char const my_bitmap[];
Run Code Online (Sandbox Code Playgroud)

这为所有代码(包括标题)提供了对数据的访问权限,但确保您只有一个数据副本供每个人使用.它还避免了无意义地重新编译代表位图的代码,一次针对需要访问数据的每个文件.