gpt4 book ai didi

c++ - 聚合与值用填充初始化聚合类对象

转载 作者:可可西里 更新时间:2023-11-01 17:59:13 31 4
gpt4 key购买 nike

聚合初始化初始化聚合类对象的数据成员,而聚合的值初始化将首先对其进行零初始化,还将填充字节清零,如以下规范引用所示

if T is a (possibly cv-qualified) non-union class type, each non-static data member and each base-class subobject is zero-initialized and padding is initialized to zero bits;

这是否意味着通常应该避免使用 () 初始化聚合结构而更喜欢使用 {} 因为后者不必确保填充位为零?

如果以上问题的答案是“否”,是否存在实现不使用 {} 填充填充而是使用 () 填充的情况?在这些情况中,对于程序员来说,使用什么是更好的选择?

最佳答案

没有。首先,我怀疑大多数编译器实际上会使用单个值(包括填充)无论如何对聚合(给定常量参数)进行值初始化。

然而,为什么不这样做的一个重要原因是,应该保留这种微优化,直到您有显示存在问题的测量结果(我敢打赌您永远不会得到这些测量结果)。同时,写下最清楚的那个。

关于c++ - 聚合与值用填充初始化聚合类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441488/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com