我是靠谱客的博主 长情乌龟,最近开发中收集的这篇文章主要介绍cgo 结构体指针_传递回调函数和指针到 Cgo,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

`Cgo`允许 Go 程序调用 C 库或其他暴露了 C 接口的库。正是如此,这也成为 Go 程序员工具箱的重要组成部分。

使用`Cgo`可能会比较棘手,特别是在 Go 和 C 代码中传递指针和回调函数时。

这篇文章讨论了一个端到端当例子,包含了如下几方面:

* `Cgo`的基本使用,包括链接一个传统的 C 库到 Go 二进制文件中。

* 从 Go 语言中传递 struct 到 C 语言中。

* 传递 Go 函数到 C 程序中,并安排 C 程序在随后调用它们。

* 安全的传递任意的 Go 数据到 C 代码中,这些 C 代码后续会回传这些数据到它所调用的 Go 回调中。

本文并不是一个`Cgo`的使用教程-在阅读前,需要你对它对简单使用案例有所熟悉。

在本文最后列了一些有用的`Cgo`使用教程和相关的文章。这个案例的全部源代码详见[Github](https://github.com/eliben/code-for-blog/tree/master/2019/cgo-callback)。

## 问题所在-一个C库调用多个Go回调程序

如下是一个虚构的C库的头文件,该库处理(输入)数据,并基于事件调用回调函数。

```c

typedef void (*StartCallbackFn)(void* user_data, int i);

typedef void (*EndCallbackFn)(void* user_data, int a, int b);

typedef struct {

StartCallbackFn start;

EndCallbackFn en

最后

以上就是长情乌龟为你收集整理的cgo 结构体指针_传递回调函数和指针到 Cgo的全部内容,希望文章能够帮你解决cgo 结构体指针_传递回调函数和指针到 Cgo所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部