C ++初始化非常大的常量数组,最佳实践

时间:2015-06-29 08:31:38

标签: c++

我的程序使用4个大型常量数组 - 64×256 64位整数。目前,我已经使用了一些辅助代码来预先计算值并将它们发送到文件以将它们复制并粘贴到程序文件中。这有效,但感觉相当垃圾。我非常肯定必须有一个更加光滑的方法来预先计算它们。他们真的必须保持不变!

提前致谢。

2 个答案:

答案 0 :(得分:4)

以您可以通过include指令使用的格式生成文件。然后使用#include指令直接使用文件。

your_64bit_type array[] = {
     #include "precomputed.inc"
};

使用预先计算的表时这是很正常的。另请参阅XMACROS了解另一种使用包含文件表的方法。

答案 1 :(得分:0)

嗯,这样做的一种方法是编写一个程序,将数组输出到头文件/源文件中。如果文件已存在,请不要创建它。

然后,您只需确保在构建过程中运行此程序。您的IDE应提供运行此选项的选项。如果没有,我确定你可以把它添加到一个makefile - dunno,避免在20多年内用手触摸它们。

我过去曾使用类似的流程来确保程序的每个副本都包含一个唯一的密钥。