Re: 構造体のメンバの記憶域の順
In article <871xve8046.wl@anago2.mas.chi.its.hiroshima-cu.ac.jp>,
Fujii Hironori <fujii@chi.its.hiroshima-cu.ac.jp> writes:
> 構造体のメンバの記憶域は並べられた順に割り当てらることとなっていますが、
> これには何か理由がありますか。
それが規格だから。としか答えようありません。
>
> struct foo {
> char a;
> int b;
> char c;
> };
>
> このとき、並べられた順に a,b,c で割り当てるより、
> a,c,b とした方がたいてい詰め物が少ないと思うので。
ならびが保証されていないと、むっちゃ困りますけど、理解できません?
あと、CPUによりますが、複数バイトの同時アクセスが協会を気にしなくても
良いものもありますんで(intel系とか)コンパイラによってはパッキングする
こともあります。
まあ、設計として、上記のようなことをやらないのが基本です。
#って言ってるんだけど、最近64bitのプログラム書いていると、どうしても
#32bitの癖で、たまに8byteバウンダリを忘れちゃう。:-Pま、たいていは数
--
___ わしは、山吹色のかすてーらが大好きでのぅ
[[o o]] ふぉっふぉっふぉ
'J' 森下 お代官様 MaNMOS 英夫@ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D 02 74 87 52 7C B7 39 37
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735