其实与c语言对齐的逻辑是一致,都是以最大的内存占用填充, 32位系统对齐系数是4,64位系统对齐系数是8
1.有一种情况特殊,当go结构体内部存在两个4字节长度的字段占用一个8字节的内存时,应该传4个字节长度的指针,每一步都需要以4个字节写入
2.如果go结构体都是8字节长度类型的字段,那直接传入的数组首元素指针以8个字节长度的类型即可,如 long(linux64位是8个字节,win64是4,所以在win64需要传long long)
| Name | Name | Last commit date | ||
|---|---|---|---|---|
其实与c语言对齐的逻辑是一致,都是以最大的内存占用填充, 32位系统对齐系数是4,64位系统对齐系数是8
1.有一种情况特殊,当go结构体内部存在两个4字节长度的字段占用一个8字节的内存时,应该传4个字节长度的指针,每一步都需要以4个字节写入
2.如果go结构体都是8字节长度类型的字段,那直接传入的数组首元素指针以8个字节长度的类型即可,如 long(linux64位是8个字节,win64是4,所以在win64需要传long long)