C++ 面试题 目录

C++ 中如何与 C 语言代码进行互操作?

推荐答案

在 C++ 中与 C 语言代码进行互操作,通常可以通过以下几种方式实现:

  1. 使用 extern "C" 链接指示符:通过 extern "C" 告诉编译器按照 C 语言的命名和调用约定来编译函数或变量。

  2. 包含 C 语言头文件:在 C++ 代码中包含 C 语言的头文件时,通常需要使用 extern "C" 包裹头文件的包含语句。

  3. 编译和链接:确保 C 语言代码和 C++ 代码能够正确地编译和链接在一起。

本题详细解读

1. 使用 extern "C" 链接指示符

在 C++ 中,函数名会被编译器进行名称修饰(name mangling),以便支持函数重载等特性。而 C 语言没有名称修饰,因此为了在 C++ 中调用 C 语言的函数,需要使用 extern "C" 来避免名称修饰。

2. 包含 C 语言头文件

当在 C++ 代码中包含 C 语言的头文件时,通常需要使用 extern "C" 包裹头文件的包含语句,以确保编译器正确处理 C 语言的函数声明。

3. 编译和链接

在编译和链接 C 语言和 C++ 代码时,确保使用相同的编译器和链接器,并且正确设置编译选项。通常,C 语言代码使用 .c 文件扩展名,而 C++ 代码使用 .cpp.cc 文件扩展名。

示例代码

以下是一个简单的示例,展示了如何在 C++ 中调用 C 语言的函数:

c_code.c:

cpp_code.cpp:

编译和链接:

运行 final_program 将输出:

通过以上步骤,C++ 代码可以成功调用 C 语言的函数,实现互操作。

纠错
反馈