初级会员
  • 第 59915 位会员
  • liang24
  • 2021-02-01 04:04:43
  • Offline
  • 20 20

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 引用Go程序设计语言13.1 > 聚合类型(结构体或数组)的长度至少是它的成员或元素的长度之和,并且由于“内存空隙”的存在,一般会比这个要大。内存空位是由编译器添加的未使用的内存地址,用来确保连续的成员或者元素相对于结构体或数组的起始地址是对齐的。 空结构体(struct{})的Sizeof是0,int64的Sizeof是8。 T1的内存空间是(0,8),总共是8;而T2的内存空间是(8,0),由于要对齐,所以即便后面的是0,但仍需要使用8字节来对齐,因此是16。 但如果在T1和T2里再添加一个int64,它们都是16。大家可以自行尝试。 最后建议,如果结构体成员的类型是不同的,那么将相同类型的成员定义在一起,可以更节约内存空间。