使用宏使用额外的元素初始化数组

我将通过两种不同的方式初始化数组,具体取决于宏:

# if feature_enabled
const int v[4] = {1, 2, 3, 4};
#else
const int v[5] = {0, 1, 2, 3, 4};
#endif

问题在于赋值中的数据实际上是大型矩阵,并且由于各种原因,仅进行较小的修改(仅在数组的开头再添加一个元素)就复制数据不是一个好的解决方案。

我想知道是否有一种方法可以执行与此处相同的操作,而又基本上不重复最后n-1个元素。

如果您没有在数组上指定大小,而是自动推断出大小,则可以有条件地在前面添加0:

const int v[] = {
# if feature_enabled
  0,
#endif
  1, 2, 3, 4
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章