C++相談室 part21
■ このスレッドは過去ログ倉庫に格納されています
0208デフォルトの名無しさん
NGNGんー。言ってる意味がよく分からん。
例えば
struct AB {
int a;
short b;
};
とした時、単独では別に b の後のパディングは必要ないかもしれない。
AB ab;
short c;
としたときに、ab.b と c がくっついてても問題なさそうに見える。
でも、配列にしたとき int, short, int, short となるから、
5.3.3 -2- の仕様から AB::b の後にはパディングが入る
(パディングの入れ方は環境依存だけど、こうなることが多い)。
sizeof (AB) が 8(の環境とする)になるわけだから、
単独で確保してもやっぱり 8 バイトじゃなくちゃまずいということになる。
だから、AB ab; short c; でもパディングは入るし、
そのパディングのサイズは AB のサイズの中に織り込み済みである。
と、そういうことを表した仕様だと思われ。
■ このスレッドは過去ログ倉庫に格納されています