C++ 如何通过参数传递函数?

C++ 如何通过参数传递函数?,c++,c,function,callback,C++,C,Function,Callback,所以,我在玩GNUTLS中的回调 我想把我的函数,handleSNI传递给一个函数,但我还想传递一些其他重要的参数(在调用handleSNI时传递给它) 我可以在全局变量中的函数之外执行它们,但这不是线程安全的 可能吗?如果没有,如何实现这一点?GnuTLS在回调中支持用户定义的参数。对于推拉功能,可通过设置。传递一个指向包含数据的结构的指针,并在回调中使用它 在更一般的层面上,答案是:如果您的库不支持用户定义的参数,那么您就倒霉了。在C语言中,没有办法在中欺骗一个额外的参数。如果你曾经找到这样

所以,我在玩GNUTLS中的回调

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

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


可能吗?如果没有,如何实现这一点?

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


在更一般的层面上,答案是:如果您的库不支持用户定义的参数,那么您就倒霉了。在C语言中,没有办法在中欺骗一个额外的参数。如果你曾经找到这样一个图书馆,帮你自己一个忙,不要使用它。如果没有其他选择,您可以使用线程安全容器或线程本地存储。但是它真的很难看。

没有将\u ptr设置为与在set\u int中设置sockfd等效?一个带前缀的全局线程很好地解决了这个问题。您使用的是类吗?因为如果你不是,用一个类来实现你所说的会更容易。@GabrielMello这与此无关。