gpt4 book ai didi

D 中的结构需要零初始化吗?

转载 作者:行者123 更新时间:2023-12-01 23:16:59 26 4
gpt4 key购买 nike

C 的方式是memset() 结构,因为默认情况下它被认为充满了垃圾。在 C++ 中,您执行 = {0} 以进行零初始化。

addrinfo hints;
memset (&hints, 0, sizeof (struct addrinfo));

什么是零初始化的D方式?

最佳答案

它根据其内容自动初始化,这些内容通常为零(但值得注意的是 不是 charfloat 系列,它们被设置为nan 值,除非您在结构定义中的各个字段上将它们设置为 =0)。

因此,通常,您不需要显式初始化 D 结构,编译器会自动为您完成,如果它没有做正确的事情,您应该在结构定义本身上设置它。如果您不能更改定义并且确实需要零,您仍然可以使用 C memset 函数。

    foo f = void; // skip normal initialization
import core.stdc.string;
memset(&f, 0, f.sizeof); // set to 0 with memset

关于D 中的结构需要零初始化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42892650/

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