d初化大结构

原文
如果理解正确,如下:

struct S
{
    char[16384] array;
}

然后用它,必然会导致创建和链接一个S.init,从而导致二进制大小膨胀16kb.是这样吗?

是的.但,全零就不是这样了.至少对TypeInfo.initializer,它指向用指示要写入的零个数的数组大小的null.
顺便,可指定零默认值来覆盖它:

struct S
{
    char[16384] array = 0; // 无初化存储.
}
posted @ 2023-02-20 08:39  zjh6  阅读(21)  评论(0)    收藏  举报  来源