1. 通过`improt "C"`语句开启CGO特性
2. `/**/`中间是C代码,之后接 import "C" 如果存在空行 就会报错.could not determine kind of name for C.*
3. CGO不仅仅用于Go语言中调用C语言函数,还可以用于导出Go语言函数给C语言函数调用
示例一,开启CGO特性:
package main //#include <stdio.h> import "C" func main() { // println("hello cgo") C.puts(C.CString("Hello, World ")) }
示例二,调用自定义的C方法:
package main /* #include <stdio.h> static void SayHello(const char* s) { puts(s); } */ import "C" func main() { C.SayHello(C.CString("Hello, World ")) }
C代码与go代码放在同一个文件中,C代码注释起来,紧接着换行写 import "C"
示例三,C代码与Go代码分离:
package main
// void SayHello(const char* s); import "C" func main() { C.SayHello(C.CString("Hello, World ")) }
同目录下需要放置一个hello.c文件,内容如下:
#include <stdio.h> void SayHello(const char* s) { puts(s); }