在C中,在结构中定义字段的顺序就是它们在内存中实例化的顺序。考虑到内存对齐,下面的结构在内存中的大小为8字节,但如果字段颠倒,则只有6字节,因为不需要任何对齐填充。s { /* 2 bytes of padding to align a 64 bit integer */}
这种排序保证存在于C结构、C++类(和结构)和Objective-C类中。或者(假设该<e
据我理解,64位linux系统上的指针大小为8字节,对齐的要求应该是8字节对齐。如果是这样,那么为什么新运算符返回16字节(可能是32,但这个数字大于8)对齐指针又有什么关系呢?* c1 = new SimpleChar; SimpleChar * c = new (slab) SimpleChar;
Simpl