也就是说,编译器生成类的标准是什么?例如,假设我有一个包含成员 x
、y
和 z
的类 C
,我想知道该类中 z
的偏移量。我可以只将其他成员的数据类型大小相加,就像我对结构所做的那样吗?
最佳答案
不,你不能。
编译器可以根据自己的选择自由对齐成员。这是编译器的一个实现细节。
如果您使用的是 POD ,那么你可以使用 offsetof 宏。
但是如果使用非 POD,那么我想不会有任何可移植的方法来这样做。
关于c++ - 是否可以手动计算类成员的字节偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6682438/