Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Go函数作为参数传递给C函数?_C_Go_Cgo - Fatal编程技术网

如何将Go函数作为参数传递给C函数?

如何将Go函数作为参数传递给C函数?,c,go,cgo,C,Go,Cgo,我想把一个Go函数传递给一个C函数 比如: stm:=C.struct\u托盘菜单{ .... fn://方法的定义 .... } C.菜单和cb(stm); 并将其传递到C函数中: 静态无效菜单\u cb(结构托盘\u菜单*项){ (b)项目; printf(“菜单:单击%s\n”,项目->文本); } 我只是想知道如何定义C.function之类的东西。主要问题是对C.go定义的误解。 最后的代码是 //导出callOnMeGo func callOnMeGo(在int中)int{ f

我想把一个Go函数传递给一个C函数

比如:

stm:=C.struct\u托盘菜单{
....
fn://方法的定义
....
}
C.菜单和cb(stm);
并将其传递到C函数中:

静态无效菜单\u cb(结构托盘\u菜单*项){
(b)项目;
printf(“菜单:单击%s\n”,项目->文本);
}

我只是想知道如何定义C.function之类的东西。

主要问题是对C.go定义的误解。 最后的代码是


//导出callOnMeGo
func callOnMeGo(在int中)int{
fmt.Printf(“Go.callOnMeGo():在中用arg=%d\n”调用)
返回+1
}
func main(){
C.some_C_func((C.callback_fcn)(不安全的指针(C.callOnMeGo_cgo)))
//别忘了使用(FunctionDefinedGo\u cgo)for with postfix\u cgo
...

您是否阅读了有关回调的文档?