深入C++对象模型一处疑义

深入C++对象模型一处疑问!
在data语意学中书上有这样一段
class A {int a,char b }
class B :public A{ char c }
class C :public B{ char d }
按照书上的说法在32位环境下 ABC大小分别位 8 12 16
在win下面正常,但是在LINUX下测试出现不一样测试结果,并且和成员变量为公有私有有关系(WIN下没有关系),如果为成员全部为public 结果为8 12 12 如果全部为私有则结果为 8 8 8,一些私有或一些公有未测试,这让我很费解,求赐教。
C++ Inside C++ Object 类大小

------解决方案--------------------
结构体对齐属于实现细节,跟编译有关, 跟编译器的选项有关。