Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
haro2 opened this issue Aug 12, 2023 · 2 comments

Comments

@haro2
Copy link

haro2 commented Aug 12, 2023

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

[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
Copy link
Owner

ufcpp commented Aug 12, 2023

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

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

@haro2
Copy link
Author

haro2 commented Aug 12, 2023

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants