C++对象的内存布局有些是有明确规定的,
但在某些情况下是由编译器的实现者决定的(比如有虚函数时),也就是没有明确的规范,换编译器了可能就不一样了。
不同编译器的默认对齐粒度可能也不一样。
如果你的项目的调用者、被调用者是固定死了编译器的,问题不大。
MS有一个简单的说明:
https://docs.microsoft.com/en-us/cpp/cpp/trivial-standard-layout-and-pod-types?view=msvc-160
--
修改:z16166 FROM 123.115.128.*
FROM 123.115.128.*