当用在enum类型 定义时,暗示了应该使用最小完整的类型(it indicates that the smallest integral type should be used)。 下面的例子中,packed_struct类型的变量数组中的值将会紧紧的靠在一起,但内部的成员变量s不会被“pack”,如果希望内部的成员变量也被packed的话,unpacked-struct也需要使用packed进行相应的约束。
char a; //第二个成员,自身长为1,#pragma pack(4),取小值,也就是1,所以这个成员按一字节对齐,放在偏移[4]的位置。 short b; //第三个成员,自身长2,#pragma pack(4),取2,按2字节对齐,所以放在偏移[6,7]的位置。 char c; //第四个,自身长为1,放在[8]的位置。 }; 这个类实际占据的内存空间...
Note that there is no point in giving both a component size clause and a pragma Pack for the same array type. if such duplicate clauses are given, the pragma Pack will be ignored.9.8. Bit_Order Clauses For record subtypes, GNAT permits the specification of the Bit_Order attribute. ...