我知道如何使用extern "C"
但是您必须使用它的条件是什么?何时使用extern“C”?
extern "C"
告诉C++编译器不执行任何名称重整上 大括号内的代码。这使您可以在C++中从 调用C函数。
例如:
#include <string.h>
int main()
{
char s[] = "Hello";
char d[6];
strcpy_s(d, s);
}
虽然这种编译VC++的罚款。但有时这写成:
extern "C" {
#include <string.h>
}
我没有看到这一点。你能举一个真实的例子,extern "C"
是必要的吗?
而是黑客''避免名字改编的,使用''标题。 –
@AlexandreC:使用''标题绝对不是一个好主意。 ''头部*不*保证将标识符放置在全局名称空间中,从而在代码移动到其他编译器时破坏依赖于全局名称空间标识符的代码。另外,''头可能并且实际上会将标识符放置在全局名称空间中,因此理论上也会破坏依赖于无污染全局名称空间的代码。 “理论上”虽然过于模糊,至少有一个白痴做到了。所以,不要使用它们。 –
@ AlfP.Steinbach:如果您编写C++,请使用''。如果你编写C,使用''和**用C编译器**编译你的代码。混合语言不是一个好主意。 –