C如何调用C++函数?
时间: 2023-09-01 12:07:33 浏览: 43
C语言可以调用C++函数,但需要做一些处理。由于C++支持函数重载,所以在C++中函数名可能会有多个符号,这样在C语言中无法直接调用。下面介绍两种方法:
1. 使用extern "C"关键字
在C++中使用extern "C"关键字可以将C++函数声明为C函数,这样可以避免函数名符号的问题。例如:
```c++
// 在C++中定义的函数
extern "C" {
void myFunction(int arg1, double arg2);
}
```
在C语言中可以这样调用:
```c
// 在C中调用C++的函数
extern void myFunction(int arg1, double arg2);
int main() {
myFunction(10, 3.14);
return 0;
}
```
2. 使用封装函数
如果不想在C++中使用extern "C"关键字,也可以使用封装函数来调用C++函数。例如:
```c++
// 在C++中定义的函数
void myFunction(int arg1, double arg2) {
// ...
}
// 在C++中定义的封装函数
extern "C" {
void myFunctionWrapper(int arg1, double arg2) {
myFunction(arg1, arg2);
}
}
```
在C语言中可以这样调用:
```c
// 在C中调用C++的封装函数
extern void myFunctionWrapper(int arg1, double arg2);
int main() {
myFunctionWrapper(10, 3.14);
return 0;
}
```
以上两种方法都可以实现在C语言中调用C++函数,但第一种方法更为常用和简洁。