基于这个问题,我理解了将 C 库与 C++ 代码链接起来的构造的目的。现在假设以下情况:
我有一个用 C++ 编译器编译的“.so”共享库。头文件有一个'typedef stuct'和一些函数声明。如果标头包含 extern "C" 声明...
#ifdef __cplusplus
extern "C"
{
#endif
// typedef struct ...;
// function decls
#ifdef __cplusplus
}
#endif
……效果如何?具体来说,我想知道该声明是否有任何有害的副作用,因为共享库被编译为 C++,而不是 C。
在这种情况下是否有任何理由使用 extern "C" 声明?