我们之前已经让 Go 调用 C 函数,但有些场景下需要 C 来调用Go函数。
Go 使用 export
关键字导出 C 可调用的函数,如下:
package main
// #cgo CFLAGS: -g -Wall
// #include <stdlib.h>
// extern void c_func();
import "C"
import "fmt"
// export go_export_func
func go_export_fun(v C.int) {
fmt.Printf("Go func %d\n")
}
func main() {
C.c_func()
}
调用的 C 代码如下:
extern int go_export_func(int v);
void c_func() {
go_export_func(10);
}
网友评论