私はそれを理解していないので、誰かが次の引用を理解するのを手伝ってくれませんか:
構造体またはクラスの先頭に対するメンバーのオフセットが 128 未満の場合、データ メンバーにアクセスするためのコードはよりコンパクトになります。例:
class S2{ public: int a[100]; //400 bytes. first byte at 0, last byte at 399 int b; //4 bytes. first byte at 400, last byte at 403 int ReadB() {return b;} };
ここで b のオフセットは 400 です。ポインターまたは ReadB() などのメンバー関数を介して b にアクセスするコードは、ポインターに 4 バイトのオフセットを追加する必要があります。a と b を交換すると、1 バイトの符号付き整数オフセットで両方にアクセスできます。
この 1 バイトの値はどこから来たのですか? a と b が入れ替わった場合、b はバイト 0 から始まり、a はバイト 4 から始まりますか?
編集:私の間違い、配列サイズは100になるはずでした