如何实现C语言中C与C接口函数的互相调用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1391个文字,预计阅读时间需要6分钟。
一、C或C++编译的四个步骤(一)预处理:在该步骤中,编译器将源代码中的预处理指令进行处理,例如宏定义、包含头文件等。
一、C 或 C++ 编译的四个步骤
(一) 预处理
在该步骤中,编译器将源程序中以“#”开头的语句进行处理。其中,#include 的原理是将目标文件内容导入本文件。
(二) 编译
在该步骤中,编译器将第一步生成的各个文件分别转换成汇编语言文件。在该过程中,所有函数的名称都会被转换成一个符号作为汇编文件中的唯一标识,对 C 语言函数一般直接用函数名称作为其唯一标识的符号,而对于 C++ 函数在多数情况下需要在函数名称加上各种前缀或后缀才能作为其标识,比如函数 void Print(int num),如果编译器将其视为 C 语言编译,则该函数在汇编文件中的符号为 Print,若视为 C++,则其符号可能为 Print_int(在 gcc 或 g++ 中函数名称的改变还会考虑命名空间等因素),这也是 C++ 支持函数重载的原因。
(三) 汇编
在该步骤中,编译器将第二步生成的各个文件分别转换为二进制文件,但还不是可执行文件。
本文共计1391个文字,预计阅读时间需要6分钟。
一、C或C++编译的四个步骤(一)预处理:在该步骤中,编译器将源代码中的预处理指令进行处理,例如宏定义、包含头文件等。
一、C 或 C++ 编译的四个步骤
(一) 预处理
在该步骤中,编译器将源程序中以“#”开头的语句进行处理。其中,#include 的原理是将目标文件内容导入本文件。
(二) 编译
在该步骤中,编译器将第一步生成的各个文件分别转换成汇编语言文件。在该过程中,所有函数的名称都会被转换成一个符号作为汇编文件中的唯一标识,对 C 语言函数一般直接用函数名称作为其唯一标识的符号,而对于 C++ 函数在多数情况下需要在函数名称加上各种前缀或后缀才能作为其标识,比如函数 void Print(int num),如果编译器将其视为 C 语言编译,则该函数在汇编文件中的符号为 Print,若视为 C++,则其符号可能为 Print_int(在 gcc 或 g++ 中函数名称的改变还会考虑命名空间等因素),这也是 C++ 支持函数重载的原因。
(三) 汇编
在该步骤中,编译器将第二步生成的各个文件分别转换为二进制文件,但还不是可执行文件。

