C语言中编程机制的简述

136 阅读2分钟

C的编程机制

C编程的基本策略是,通过编译和链接的两个步骤,将源代码文件转换为可执行文件。其中编译器将源代码转换为中间代码,链接器将中间代码和其他代码合并,生成可执行文件。C使用这种分而治之的方法便于对程序进行模块化,可以独立编译单独的模块,稍后再用链接器合并已编译的模块。通过这种方式,如果只改变某个模块,不必重新编译其他模块

1. 编译器和链接器

编译器

C语言代码由固定的词汇按照固定的格式组织起来,CPU无法识别此语言,CPU只认识几百个二进制形式的指令。这就需要一个工具,将C语言代码转换成CPU能够识别的二进制指令,也就是将代码加工成 .exe 程序的格式;这个工具是一个特殊的软件,叫做编译器(Compiler)

C语言的编译器有很多种,不同的平台下有不同的编译器,例如:

  • Windows 下常用的是微软开发的 Visual C++,它被集成在 Visual Studio 中,一般不单独使用;
  • Linux 下常用的是 GUN 组织开发的 GCC
  • Mac 下常用的是 LLVM/Clang,它被集成在 Xcode 中

链接器

链接是将目标文件、库函数和启动代码组合成一个可执行文件。完成链接的过程也需要一个特殊的软件,叫做链接器(Linker)

2. 源代码文件、目标代码文件、可执行文件

2.1 源代码文件

在用C语言编写程序时,编写的内容被储存在文本文件中,此文件为源代码文件

C语言为高级编程语言,其源程序文件的扩展名为“.c”。源代码文件是相对目标文件和可执行文件而言的。

2.2 目标代码文件

储存由编译器将源代码转换的机器语言代码的文件,此文件为目标代码文件

虽然目标代码文件储存着机器语言代码文件,但不能直接运行此文件,因为它缺少库函数和启动代码

  • 库函数包含着编写C语言程序中,所用到的各种指令的目标代码
  • 启动代码为操作系统和程序之间的接口

2.3 可执行文件

包含目标代码、系统标准启动代码和库函数的文件为可执行文件

可执行文件中的代码都由机器语言指令组成

编译器和链接器.jpg