我正在为 C++ 库添加 C 包装器。在某些情况下,应将用户定义的回调函数传递给库。并且回调函数的原型有引用参数。例如:
typedef void (*callBackFunc)(A& a, B& b); //A, B are classes
我想在外部头文件中使用下面的 C 原型和包装库中内置的一些帮助函数来解释对象 a 和 b。
typedef void (*callBackFunc)(void *a, void *b);
包装库中的辅助函数:
extern "C" int getValueFromA(void *a) {
A* pa = (A *)a;
return pa->value;
}
....
这种方法行得通吗?我不确定参考参数是如何实现的。