是否可以手动计算类成员的字节偏移量?

Jim*_*ell 5 c++ compiler-construction class-members

也就是说,编译器用来生成类的标准是什么?例如,让我们说,我有类C与成员x,y以及z,我想知道的偏移z该类中.我可以只添加其他成员的数据类型大小,就像我对结构一样吗?

Alo*_*ave 8

你不能.
编译器可以根据用户的意愿自由调整成员.它是编译器的实现细节.

如果您正在使用POD,则可以使用offsetof宏.

但是如果使用非POD,那么我认为没有任何便携方法可以这样做.

  • +1并且在单个编译器中,对齐规则可能因编译选项和编译指示而异... (3认同)