我在一个cpp文件中看到,它external "C" {...}包含了几个函数的定义.
从https://isocpp.org/wiki/faq/mixing-c-and-cpp,我想extern "C"在cpp文件中使用的目的是使附带的C++函数可用于C程序.
链接中的示例显示仅extern "C"包含C++函数的声明,而不是它们的定义
只需声明C++函数extern"C"(在您的C++代码中)并调用它(从您的C或C++代码).例如:
Run Code Online (Sandbox Code Playgroud)// C++ code: extern "C" void f(int); void f(int i) { // ... }
我在开头提到的cpp文件看起来像:
// C++ code:
extern "C" {
void f(int i)
{
// ...
}
void g(int i)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
是否应该extern "C"包含C++函数的声明或定义?如果是这样,为什么?