阵列初始化结构
Array initialization with structures
i具有以下数据结构
struct single_t
{
uint16_t i1 = 0;
uint8_t i2 = 0;
uint8_t i3 = 0;
};
struct mapping_t
{
uint8_t n1;
uint8_t n2;
bool enable;
uint n3;
std::array<single_t, 32> map;
};
我想以以下方式初始化它们:
mapping_t m1 {
3, // n1
254, // n2
true, // enable
5, // n3
// map
// i1 i2 i3
{{
{0x1000, 1, 8}
}}
};
我是否可以确定,在这种情况下,std::array<single_t, 32> map;
中的元素索引1..31是初始化为0的,还是像堆栈int i;
上的非初始化变量?我的调试器表明它们在0,但是实现取决于调试构建,还是标准中定义的?
来自http://en.cppreference.com/w/cpp/language/aggregate_initialization
如果初始化程序的数量小于成员数量或 初始化列表是完全空的,其余成员是 价值定性。如果参考类型的成员是其余成员之一,则该程序的形式不佳。
值初始化的默认情况是用0
初始化请参阅http://en.cppreference.com/w/cpp/language/value_initialization
价值初始化的影响是:
[...]
4)否则,该对象为零。
求发,你很好!
相关文章:
- 多成员Constexpr结构初始化
- 为什么用结构初始化数组需要指定结构名称
- 使用指定的初始值设定项聚合匿名结构初始化
- 不同的类或结构初始化方法之间的性能差异是什么?
- 如何在结构初始化中获取成员C++
- C++正确的结构初始化
- 使用大括号进行结构初始化
- 内部结构初始化不起作用 - C++
- 使用嵌套结构初始化并集
- 使用匿名结构初始化联合
- 结构初始化语法
- 结构初始化的 C++ 向量
- C++嵌套结构初始化和访问成员
- 结构初始化中的常量正确性
- 使用 C++ 中的自定义元素进行 Const 结构初始化
- 如何在结构C++初始化内置数组
- Visual C++ 模板类成员结构初始化语法糖
- C++结构初始化
- C 在结构初始化过程中带有内部阵列的奇怪错误
- 此C/C 的结构初始化器如何使用足够的字段工作