c++ - C++ 使用 C 调用约定调用回调
问题描述
我有一个带有 C 兼容标头的库。这个库 100% 用 C++ 实现。尽管如此,重要的是调用约定都是 C,因为库函数将从 C 和 C++ 代码中调用。
// HEADER (C/C++)
#ifdef __cplusplus
extern "C" {
#endif
typedef void(*my_callback)(int);
#ifdef __cplusplus
}
#endif
// SOURCE (C++)
void foo(my_callback callback) {
callback(2);
}
如何确保my_callback
始终使用 C 调用约定调用它?typedef
在一个extern "C"
块内就足够了吗?
解决方案
推荐阅读
- reactjs - 如何根据纯字符串值设置 slate 值(序列化)
- android - Android In-App billing 中“测试卡慢”的情况下未调用 onPurchasesUpdated 回调
- python - 我怎样才能使这种构造更简单,例如使用 python 中的类或函数?
- unit-testing - ASP.NET Core 3.1 升级问题
- ios - UICollectionViewFlowLayout 问题
- sql - 按顺序删除重复行
- c# - 可以使用从 Swift Binding 项目生成的 *.dll 吗?
- r - 为什么在 hexbin 对象上调用 graphics::plot 会引发错误?
- firebase - 如何在 crashlytics 中删除/取消观看版本?
- r - 闪亮的反应输入添加和删除