c++ - 从另一个静态常量数组初始化静态常量数组(计算量很小)
问题描述
所以我有一堆无符号类型的静态常量数组。我在标题中声明它们并在 cpp 文件中初始化它们。阵列非常大(它们是基于 OFDM 的发射器的载波索引)。但是我有文档中的值。所以这只是一个复制粘贴初始化的问题。到目前为止,这工作正常。
但是,我需要第二组数组,它们只不过是原始集合 + 一个常量值。
在标题中
class C
{
static const uint32_t A[288];
static const uint32_t A_ext[288];
}
在cpp中
const uint32_t C::A[288] = {1,2,3......};
我希望 A_ext 是
A_ext[i] = A[i] + 5;
我希望这些也被定义为静态常量,因为所有这些数组都意味着只能在项目中的其他任何地方读取。它们就像可以在项目的其他任何地方访问的标准表。
我该怎么做呢?
解决方案
我会避免相互依赖的静态初始化。你可以使用一个
struct carrier_indices_t {
uint32_t A[288];
uint32_t A_ext[288];
};
class C {
static const carrier_indices_t carrier_indices;
}
接着
const carrier_indices_t C::carrier_indices = foo();
哪里foo
是constexpr
返回 a 的函数carrier_indices_t
。
或者,只存储一个数组并提供两个静态方法来访问它(一个偏移量为+5
)。
推荐阅读
- javascript - VSCode IntelliSense - 如何声明类型
- jsf - 删除行后如何仅呈现嵌入表 - 搜索表达式问题
- sql - 用于计算缺少某些日期记录的列的每日平均值的 SQL
- ruby-on-rails - Instagram Graph API 返回“error_message”=>“无效的平台应用程序”
- php - codeigniter 图标菜单在子页面中消失
- c++ - 我的编译器上的策略数据结构不起作用
- docker - 在 docker 中使用 nginx-proxy 和在主机上使用 nginx
- android - 在 android 应用程序中创建全时运行的后台服务的问题
- c - C 中 scanf 和 printf 的输出行为(Eclipse 控制台)
- javascript - Gatsby 函数返回未定义