1. 首页
  2. 主题
  3. Go问与答

cgo怎么传递函数指针?

DND-dou · · 1953 次点击
本人最近在做项目的时候,遇到了这个问题:go怎么向c传递函数指针: ![1.png](https://static.studygolang.com/210222/2e5c6290499961287fdf9c62cd559d25.png) 上面这段代码会报错: ![2.png](https://static.studygolang.com/210222/ed72326efc5630458fb9d03777bf8d81.png) 提示要传入*[0]byte类型,这该怎么办???
go的函数和c的函数在内存中的样子不一致,所以最好别这么干
#2
更多评论
把函数赋值放到C里做? ``` package main /* typedef struct{ int (*a)(int); }A; extern int fn(int n); static void setCallBack(){ A a={ .a=fn }; } */ import "C" func main() { C.setCallBack() } //export fn func fn(i C.int) C.int { return i } ```
#1
Mark! [Climbing Blocks](https://www.xjd.com/c-Climbing-Blocks/)
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中