CGO使用

参考文章:

http://golang.org/cmd/cgo is the primary cgo documentation

There is also a good introduction article at http://golang.org/doc/articles/c_go_cgo.html.

example:https://github.com/golang/go/wiki/cgo

数据类型转换

1.C -> Go:


int(C.int )

// C string to Go string

func C.GoString(*C.char) string

// C string, length to Go string

func C.GoStringN(*C.char, C.int) string

// C pointer, length to Go []byte

func C.GoBytes(unsafe.Pointer, C.int) []byte

2.Go -> C:


C.char

C.schar (signed char)

C.uchar (unsigned char)

C.short

C.ushort (unsigned short)

C.int

C.uint (unsigned int)

C.long

C.ulong (unsigned long)

C.longlong (long long)

C.ulonglong (unsigned long long)

C.float

C.double.

unsafe.Pointer (void*)

// Go string to C string

func C.CString(string) *C.char

var val []byte

(*C.char)(unsafe.Pointer(&val[0]))

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Astronomygonova - A wrapper for libnova -- Celestial Mech...
    JumboWu阅读 9,422评论 0 41
  • host Copyright (c) 2014-2017, racaljk. https://github.com...
    JasonStack阅读 3,240评论 0 4
  • 一睁眼,白云飘,青山立,绿水绕 低矮的墙,昏暗的屋,透过窗的月光 抚摸着残败的屋顶 对不起小手,你快快长大 长大后...
    木易江淮阅读 941评论 0 0

友情链接更多精彩内容