2018-10-15 21:07:38 c language
程序员文章站
2022-03-03 08:41:11
2018-10-15 21:07:38 c language ......
2018-10-15 21:07:38 c language
c语言编译器,神奇的魔法师
- 在类 unix 系统(linux、mac os 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断是否是可执行程序。
- 可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,cpu 可以直接识别,毫无障碍;但是对于程序员,它们非常晦涩,难以记忆和使用。
- 在计算机发展的初期,程序员就是使用这样的二进制指令来编写程序的,那个拓荒的年代还没有编程语言。
- 对于cpu,c语言代码就是天书,根本不认识,cpu只认识几百个二进制形式的指令。
- 源文件其实就是纯文本文件,它的内部并没有特殊格式。
- 编译和链接的原理:源代码要经过编译(compile)和链接(link)两个过程才能变成可执行文件。编译器一次只能编译一个源文件,如果当前程序包含了多个源文件,那么就需要编译多次。编译器每次编译的结果是产生一个中间文件(可以认为是一种临时文件),而不是最终的可执行文件。中间文件已经非常接近可执行文件了,它们都是二进制格式,内部结构也非常相似。将当前程序的所有中间文件以及系统库(暂时可以理解为系统中的一些组件)组合在一起,才能形成最终的可执行文件,这个组合的过程就叫做链接(link)。完成链接功能的软件叫做链接器(linker)。