extern "C"的作用
时间: 2023-09-04 21:08:16 浏览: 64
C语言extern使用方法总结.doc
`extern "C"`是用于C++语言中的一个关键字,用于指定函数的链接规范。C++编译器会对函数名进行名称修饰(name mangling),以便支持函数重载等特性。而C语言不支持函数名修饰,所以在C++调用C语言函数时需要使用`extern "C"`来告诉编译器不要对函数名进行修饰,以确保C++能够正确调用C语言函数。
例如,一个C语言的函数声明如下:
```c
void foo(int a, int b);
```
在C++中,编译器会将其转换为以下形式:
```c++
void _Z3fooii(int a, int b);
```
使用`extern "C"`可以告诉C++编译器不要对函数名进行修饰,使得C++代码可以正确地调用C语言函数。例如:
```c++
extern "C" {
void foo(int a, int b); // 声明一个C语言函数
}
int main() {
foo(1, 2); // 调用C语言函数foo
return 0;
}
```
这样,C++编译器就不会对函数名进行修饰,可以正确地链接C语言函数foo。
阅读全文