首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有结构的数组初始化

具有结构的数组初始化
EN

Stack Overflow用户
提问于 2017-02-25 07:58:12
回答 1查看 71关注 0票数 1

我有以下数据结构

代码语言:javascript
复制
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;
};

我想以以下方式初始化它们:

代码语言:javascript
复制
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,但是该实现是依赖于调试构建,还是在标准中定义的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-25 08:30:36

来自initialization

如果初始化子句的数量小于成员数或初始化程序列表完全为空,则其余成员为值初始化。如果引用类型的成员是这些剩余成员之一,则程序是不正确的。

值初始化的默认情况是使用0初始化。

请参阅initialization

值初始化的效果如下: ..。 4)否则,对象为零初始化。

好了,你没事!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42453497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档