ufcpp / UfcppSample

http://ufcpp.net/ 向けのサンプル
Apache License 2.0
133 stars 41 forks source link

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

Open haro2 opened 10 months ago

haro2 commented 10 months ago

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

[TOP](https://ufcpp.net/) [C# によるプログラミング入門](https://ufcpp.net/study/csharp/) [[相互運用] 複合型のレイアウト](https://ufcpp.net/study/csharp/interop/memorylayout/)

を見ながら sizeof 演算子で構造体サイズを確認しているときに気付いたのですが、 本文には「12バイトのレイアウトになります。」とありますが、LINQPad で動かしてみたら16バイトになりました。

Auto だから処理系によってレイアウトが違うから?と一瞬考えましたが レイアウト図の A・C で4バイトとある箇所が実際には8バイトになるので計16バイトになるのではと思います。 ただし、試していませんが 32bit 処理系で動かしたら A・C が4バイトになって計12バイトになるような気がします。

ufcpp commented 10 months ago

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

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

haro2 commented 10 months ago

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

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