我正在上一门编程语言类(class),我们正在谈论extern "C"
声明。
除了“它与C和C++的接口(interface)”之外,此声明如何在更深层次上起作用?这又如何影响程序中的绑定(bind)?
最佳答案
extern "C"
用于确保后面的符号不是mangled(装饰)。
示例:
假设我们在名为test.cpp
的文件中包含以下代码:
extern "C" {
int foo() {
return 1;
}
}
int bar() {
return 1;
}
如果您运行
gcc -c test.cpp -o test.o
看一下符号名称:
foo()
保留其名称。