黑马程序员--------------------------------------------C语言学习记录十
2015-05-10 11:28
393 查看
----------- android培训、java培训、java学习型技术博客、期待与您交流! -----------
C语言的运行机制请思考一个问题,用C语言编写的程序是如何被计算机识别运行的呢?你一定会想到:翻译!是的,C语言编写的程序需要用“翻译官”翻译成计算机能识别的0和1符号,这个“翻译官”就是编绎器。C语言从源程序到生成可执行的目标文件的主要过程如下:源代码à预处理à编译à链接à可执行文件,具体的流程如图所示。
接下以图为例,对编译的每一步进行详细分析,具体解释如下:
1、 预处理:对源文件代码中的宏进行替换,并将包含的头文件整体插入源文件中,为接下来的操作做准备。C语言的编译预处理功能主要包括宏定义、文件包含和条件编译这3种。
2、 编译:编绎器读取预处理后的输出文件,对其进行词法和语法分析,将高级语言指令转换为功能等效的汇编代码。
3、 链接:将编译后得到的零散的二进制代码文件组合成二进制可执行文件。该步骤主要完成两个工作:一是解析其他文件中函数引用或其他引用,二是解析库函数。
理解程序的运行过程,有助于我们在编程时定位错误。
----------- android培训、java培训、java学习型技术博客、期待与您交流! -----------
相关文章推荐
- 黑马程序员--------------------------------------------C语言学习记录七
- 黑马程序员--------------------------------------------C语言学习记录三
- 黑马程序员--------------------------------------------C语言学习记录八
- 黑马程序员--------------------------------------------C语言学习记录九
- 黑马程序员--------------------------------------------C语言学习记录五
- 黑马程序员--------------------------------------------C语言学习记录六
- 【黑马程序员】C语言学习笔记之clang指令(二)
- 黑马程序员-C语言基础学习(三)
- 黑马程序员--从入门到精通,C语言学习路线书籍推荐
- 黑马程序员之IOS学习总结——04 C语言中数组与字符串
- 黑马程序员——c语言学习---运算
- 黑马程序员Java培训、Android培训-Java 学习过程记录_多线程2
- 黑马程序员-[C语言]学习日记(一)
- 黑马程序员-c语言学习笔记-运算符
- C语言学习记录 递归逆序排序字符串
- 黑马程序员——C语言学习之流程结构-if—switch—while—do while
- sqlite学习笔记11:C语言中使用sqlite之删除记录
- 黑马程序员之IOS学习总结——02C语言的流程控制之选择结构
- 黑马程序员-ios学习笔记 c语言 冒泡排序
- C语言学习记录 引用传递