1. 包含C头文件
在C++代码中,可以直接包含C语言的头文件。只需要确保使用extern "C"
来告诉C++编译器这些函数是C语言函数,以便正确处理名称修饰(name mangling)。
extern "C" {
#include "c_header.h"
}
2. 调用C函数
在C++代码中,可以直接调用C语言函数,就像调用C++中的函数一样。
extern "C" {
void cFunction();
}
int main() {
cFunction(); // 调用C函数
return 0;
}
3. 使用C全局变量
如果C代码中有全局变量,可以在C++中通过extern
关键字来访问。
extern "C" {
int cGlobal;
}
int main() {
std::cout << cGlobal << std::endl; // 使用C全局变量
return 0;
}
4. 编译和链接
在编译和链接时,确保C和C++代码都能被正确处理。如果使用命令行编译器,可能需要指定不同的编译器或编译选项。
g++ -o my_program main.cpp c_source.c
5. 处理名称修饰
C++编译器会对函数名进行修饰(name mangling),以支持重载等功能。使用extern "C"
可以防止这种情况,确保C++调用的函数名与C中定义的相同。