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中定义的相同。 |