複合型のレイアウト > Autoレイアウト の Sample の構造体サイズ
Opened this issue · 2 comments
haro2 commented
いつも参考にさせてもらっています。
[TOP C# によるプログラミング入門 [相互運用] 複合型のレイアウト](https://ufcpp.net/study/csharp/interop/memorylayout/#auto-layout)
を見ながら sizeof 演算子で構造体サイズを確認しているときに気付いたのですが、
本文には「12バイトのレイアウトになります。」とありますが、LINQPad で動かしてみたら16バイトになりました。
Auto だから処理系によってレイアウトが違うから?と一瞬考えましたが
レイアウト図の A・C で4バイトとある箇所が実際には8バイトになるので計16バイトになるのではと思います。
ただし、試していませんが 32bit 処理系で動かしたら A・C が4バイトになって計12バイトになるような気がします。
ufcpp commented
32ビット環境と64ビット環境差ですかね。おそらく。
おっしゃる通り Auto だと環境によって変わる可能性あります。32/64に限らず、バージョン変わってサイズが変わっても文句は言えないかと。
文面調整するかどうかは考えてみます。
haro2 commented
さっそくの返信ありがとうございます。
明記していませんでしが私のは 64bit 環境で動かしてみた結果で、仰るように Auto なので...と考えるととやかく言うほうがどうかしてますね(すみません)。
これからも勉強になるいい記事を勝手に期待させて貰います。
それではお邪魔しました。