C/C++中extern “C” 的作用
时间: 2023-06-27 22:07:39 浏览: 95
C/C++中extern "C" 的作用分析
在C++中,extern "C"是用来指示编译器按照C语言的方式来编译函数的声明和定义的。在C++中,C和C++的函数调用方式不同,C++支持函数重载,而C不支持,因此在C++中调用C语言的函数时,需要使用extern "C"来告诉编译器按照C语言的方式来编译函数。
具体来说,当在C++中定义一个函数时,编译器会根据函数名和参数类型来生成一个符号名,这个符号名包含了函数名和参数类型的信息,这就是函数的名字修饰。而在C语言中,函数名没有被修饰,因此在C++中调用C语言的函数时,需要使用extern "C"来告诉编译器不要对函数名进行修饰,以便正确地调用函数。
例如,在C++中定义一个函数:
```
void foo(int x, int y);
```
编译器会生成一个名字修饰为"_Z3fooii"的符号名。而如果使用extern "C"来声明这个函数,编译器就会按照C语言的方式来编译函数,并生成一个名字为"foo"的符号名,以便正确地调用函数。
```
extern "C" void foo(int x, int y);
```
阅读全文