UfcppSample icon indicating copy to clipboard operation
UfcppSample copied to clipboard

複合型のレイアウト > Autoレイアウト の Sample の構造体サイズ

Open haro2 opened this issue 2 years ago • 2 comments

いつも参考にさせてもらっています。

[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バイトになるような気がします。

haro2 avatar Aug 12 '23 04:08 haro2

32ビット環境と64ビット環境差ですかね。おそらく。 おっしゃる通り Auto だと環境によって変わる可能性あります。32/64に限らず、バージョン変わってサイズが変わっても文句は言えないかと。

文面調整するかどうかは考えてみます。

ufcpp avatar Aug 12 '23 05:08 ufcpp

さっそくの返信ありがとうございます。 明記していませんでしが私のは 64bit 環境で動かしてみた結果で、仰るように Auto なので...と考えるととやかく言うほうがどうかしてますね(すみません)。

これからも勉強になるいい記事を勝手に期待させて貰います。 それではお邪魔しました。

haro2 avatar Aug 12 '23 05:08 haro2