![]() |
1
6
为什么?因为语言规范(ECMA 334 16.4.9)这样说:
至于为什么语言规范要求它。。。可能是为了通过避免不必要的擦除和覆盖,使结构赋值尽可能便宜。 |
![]() |
2
0
这可以在C规范的第5.3.1节中找到,该节规定最初分配了以下类型的变量。目的清单如下:
以下值将为0:
这本身不会编译:
Jon Skeet有一个很好的答案: |
![]() |
3
0
您可以这样做,现在所有值类型都已初始化:
注意,我只是调用了默认构造函数。 我认为这种行为的原因是,如果您调用默认构造函数或使用参数指定构造函数中的所有字段,它表明您知道自己在做什么,而不是意外地将某些字段初始化为默认值。 |
|
wavesinaroom · 断言结构向量长度 5 月前 |
![]() |
fghoussen · 在C结构体中,为什么打包、对齐似乎会进行填充? 10 月前 |
![]() |
kamkow1 · 匿名结构的初始值设定项错误无效 12 月前 |