2

可能重复:
为什么我们在 C++ 中需要 extern “C”{ #include <foo.h> }?

在我们的代码中,我多次看到如下语句:

extern "C" {

//some code

        }; 

这到底是什么意思?

4

3 回答 3

1

它告诉 C++ 编译器“某些代码”必须以 C 风格编译。这允许 C 和 C++ 代码之间的链接。

于 2011-03-28T17:28:46.520 回答
1

它告诉编译器将以下代码视为 C 代码而不是 C++ 代码

于 2011-03-28T17:29:15.463 回答
0

更重要的是,当从 C 函数调用时,链接器不会找到具有 C++ 链接的函数,除非您指定函数应该具有相同的链接类型。所以你会得到各种各样的链接错误,这似乎并不明显。

于 2011-03-28T17:30:19.273 回答