Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
これは私が取り組んでいた質問ですが、オフセットがそのようになっている理由(小さな赤い数字)を知りたいだけです
誰かが私になぜstruct s1オフセットがからなったのか説明できますか0->4->8?私が理解していることから、charは1バイトなので、3文字あります。したがって、アライメントを満たすために3バイトに1を加えたものになります。しかし、なぜそれは4から8になるのですunion u1 bか?union4バイトありますか?なぜ?
struct s1
0->4->8
char
union u1 b
union
ユニオンは4バイトです。これは、ユニオンに含まれる最大の要素、つまりポインターのサイズであるためです(これは32ビットプラットフォームである必要があります)。