C方式是memset()结构,因为默认情况下它被认为是垃圾填充.在C++中,你做= {0}零初始化.
addrinfo hints;
memset (&hints, 0, sizeof (struct addrinfo));
Run Code Online (Sandbox Code Playgroud)
什么是零初始化的D方式?
它会根据其内容自动初始化,这些内容通常为零(但特别是不适用于char或float族,设置为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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |