有人可以帮我理解以下报价,因为我没有得到它:
如果成员相对于结构或类开头的偏移量小于 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