(1)Cgo结构

package main

/*
#cgo CFLAGS: -I/user/local/include
#cgo LDFLAGS: -L/user/local/lib -l库
//定义/调用头文件

 //定义C函数
 int test_printf(char a)
 {
    printf("%c\r\n"m a);
    return 0;
 }
*/
import "C"

import "fmt"

func main() {
    var c C.char = 'c'
    retc := C.test_printf(c)
    //这里ret 是C.int 格式,参考转换图则为go 对应着 int32
    retgo = int32(ret) //返回结果强化

    fmt.Printf("%T", c)

}

总结:

1、import "C" 是启用Cgo,以及cgo配置,头文件,C函数
2、需要调用的C语言的内容使用/**/注释起来,放在import "C"之前
3、其中有两个#cgo命令,分别是编译和链接参数

  1. #cgo CFLAGS: -I/user/local/include //库对应头文件所在的目录加入头文件检索路径
  2. #cgo LDFLAGS: -L/user/local/lib -l库 //库所在目录加为链接库检索路径

你可能感兴趣的:((1)Cgo结构)