在C中,在结构中定义字段的顺序就是它们在内存中实例化的顺序。考虑到内存对齐,下面的结构在内存中的大小为8字节,但如果字段颠倒,则只有6字节,因为不需要任何对齐填充。
struct s {
int32_t a;
/* 2 bytes of padding to align a 64 bit integer */
int64_t b;
}
这种排序保证存在于C结构、C++类(和结构)和Objective-C类中。
对于Swift类和结构中的字段,存储顺序是否也有类似的保证?或者(假设该语言不支持与所列其他语言相同的指针),编译器会在编译时为您重新安排它们吗?
https://stackoverflow.com/questions/39302834
复制相似问题