c++ - 如何将函数作为参数传递给参数?

标签 c++ c function callback

<分区>

所以,我正在玩 GNUTLS 中的回调。

我想将我的函数 handleSNI 传递给一个函数,但我也想传递一些其他重要参数(在调用时传递给 handleSNI)。

我可以在全局变量的函数之外执行它们,但这不是线程安全的。

这可能吗?如果没有,如何才能做到这一点?

最佳答案

GnuTLS 支持回调中用户定义的参数。对于推拉功能,您可以通过 gnutls_transport_set_ptr 进行设置。 .您传递一个指向包含您的数据的结构的指针,并在您的回调中使用它。

在更一般的层面上,答案是:如果您的库不支持用户定义的参数,那您就不走运了。在 C 中,没有办法欺骗额外的参数。如果你找到这样的库,请帮自己一个忙,不要使用它。如果别无选择,您可以使用线程安全容器或线程本地存储。但是真的很丑。

关于c++ - 如何将函数作为参数传递给参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32030367/

相关文章:

c++ - debian armhf 上的 OpenCV

复杂的指针声明

写端口的C语言宏

JavaScript - 传递未定义的参数与忽略它相同吗?

javascript - 如何调用在另一个函数中声明的子函数

node.js - 如何杀死node.js中生成的进程

c++ - 使用 gsoap 的多个同时客户端

c++ - OpenGL - 从 C 切换到 C++

c++ - ‘operator<<’ 中的 ‘os << "不匹配 当 os 是 ostream &

你能解释一下这个—"the rules involving mixed types of operands do not apply to the shift operators"