2

これは私が取り組んでいた質問ですが、オフセットがそのようになっている理由(小さな赤い数字)を知りたいだけです

写真

誰かが私になぜstruct s1オフセットがからなったのか説明できますか0->4->8?私が理解していることから、charは1バイトなので、3文字あります。したがって、アライメントを満たすために3バイトに1を加えたものになります。しかし、なぜそれは4から8になるのですunion u1 bか?union4バイトありますか?なぜ?

4

1 に答える 1

2

ユニオンは4バイトです。これは、ユニオンに含まれる最大の要素、つまりポインターのサイズであるためです(これは32ビットプラットフォームである必要があります)。

于 2012-12-12T00:19:16.513 に答える