Skip to content

easonchen147/cgodemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cgodemo

测试cgo通过c函数获取golang的结构体切片时,内存对齐长度的问题~

1.需要先了解golang的结构体内存对齐知识点

其实与c语言对齐的逻辑是一致,都是以最大的内存占用填充, 32位系统对齐系数是4,64位系统对齐系数是8

2.go调用c语言方法时,建议传入以go结构体对齐的指针

1.有一种情况特殊,当go结构体内部存在两个4字节长度的字段占用一个8字节的内存时,应该传4个字节长度的指针,每一步都需要以4个字节写入

2.如果go结构体都是8字节长度类型的字段,那直接传入的数组首元素指针以8个字节长度的类型即可,如 long(linux64位是8个字节,win64是4,所以在win64需要传long long)

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors