0
|
BattleTested_закалÑннÑй в Ð±Ð¾Ñ Fritz R. · 技术社区 · 6 年前 |
![]() |
1
6
当您试图让位字段跨越字节边界时,实现如何处理位字段是由实现定义的。来自C11标准(secion
More of the MS documentation 指出这种具体行为:
|
![]() |
2
2
简单的答案是:这不是 错误的行为 . 打包尝试以字节为单位放置单独的数据块,但不能在一个8位字节中打包两个6位块。所以编译器将它们放在单独的字节中,可能是因为访问一个字节来检索或存储6位数据比访问两个连续字节和处理一个字节的某个尾随部分和另一个字节的某个前导部分更容易。 那么远 . 不管怎么说,大小优化通常会缩短代码,而不是数据(据我所知,但我不是专家,我很可能错在这里)。 |
![]() |
3
2
在第一个示例中,没有足够的可用位
在第二个例子中,在
|
![]() |
cobb208 · Malloc正在为释放指针引发错误 2 年前 |
![]() |
kernel · 打印结构数组内容时出错 2 年前 |
![]() |
mwitz · 在Rust中无法正确写入结构的函数属性 2 年前 |
![]() |
Ulysses · 无法访问结构字段(Rust) 2 年前 |
![]() |
Tor · 使用Box<None>值初始化struct 2 年前 |
![]() |
Yestin · Golang如何初始化数组结构[duplicate] 2 年前 |