什么 = { 0 };在 C 中的结构初始化中是什么意思?
What does = { 0 }; mean in a structure initialization in C?
当如下设置结构变量时:
WNDCLASSW wc = {0};
用 {0}
初始化对于 C 中的这个变量意味着什么?
它将结构的所有成员初始化为零。
在大多数 cases/architectures 中,这与将其所有内存设置为零相同。
由于 C 的初始化规则,它是一种通用初始化器:
它将通过将所有内容(每个成员递归地)设置为零来初始化数字或指针以及聚合(=struct
s/union
s)或数组。
对于空指针为 "all bits zero" 的平台(大多数平台)上的块作用域对象,它等同于 memset(&object,0,sizeof(object));
并且编译器通常会生成这样的 memset
调用 {0}
初始化,特别是当此类初始化应用于更大的对象时。
当如下设置结构变量时:
WNDCLASSW wc = {0};
用 {0}
初始化对于 C 中的这个变量意味着什么?
它将结构的所有成员初始化为零。
在大多数 cases/architectures 中,这与将其所有内存设置为零相同。
由于 C 的初始化规则,它是一种通用初始化器:
它将通过将所有内容(每个成员递归地)设置为零来初始化数字或指针以及聚合(=struct
s/union
s)或数组。
对于空指针为 "all bits zero" 的平台(大多数平台)上的块作用域对象,它等同于 memset(&object,0,sizeof(object));
并且编译器通常会生成这样的 memset
调用 {0}
初始化,特别是当此类初始化应用于更大的对象时。