C 语言作为最古老的一门编程语言之一,其具有大量的高性能的函数库,很多语言都提供了C
语言的调用接口,GO
作为新时代的开拓者,同时也应该站在巨人的肩膀上, CGO
就是一个提供 GO
和 C
相互调用的桥梁工具。
CGO 的基本语法
在 GO
中调用 C:package main
//
import "C"
func main() {
C.puts(C.CString("vim-go"))
}
直接在go的源码里面加入import "C"
就可以导入CGO
。
在import "C"
前面的注释会被默认成 C 代码(不能空行,必须在顶行相连)
这里的 “C” 不是包名,而是一种类似名字空间的概念,或可以理解为伪包,C语言所有语法元素均在该伪包下面如C.uint、C.print、C.free等。