计算机是怎么读懂C语言的?(下补充)

简介: 预处理后面的几个阶段

编译阶段

预处理结束后,就要开始我们的编译阶段,编译阶段会生成一个test.s的文件,这个文件里面会放我们程序转成的汇编代码,编译器通常会在这个阶段进行语法分析、词法分析、语义分析,符号汇总,那前面三个分析的作用可以猜到,是将我们的C语言程序进行分析然后转换成汇编代码,那符号汇总是什么?它会干些什么事?符号汇总其实就是将我们的全局变量和全局函数进行汇总,然后对其进行汇编,然后就会到汇编这一步。

汇编

汇编阶段会在编译阶段之后进行,它会生成一个.obj,.obj是在windows环境下生成的,在Linux环境下生成.o文件,那这些文件内容是什么?里面全是二进制指令,还会生成符号表,符号表就和编译阶段的符号汇总有关,那我们的.obj或者.o文件是二进制指令,能不能打开看看呢?我们是直接打不开的,可以使用一个工具readelf,可以打开文件看到这些二进制指令;那符号表是什么呢?符号表就是用于判断在编译过程中是否有使用符号。

链接

链接阶段是链接库和我们的生成的.obj或者.o文件生成一个.exe文件,这个文件可以执行,能看到我们程序实际跑出的结果是什么。


相关文章
C4.
|
5月前
|
存储 算法 C语言
关于c语言用计算机语言表示算法
关于c语言用计算机语言表示算法
C4.
44 1
|
5月前
|
算法 数据库 C语言
简单谈谈我参加计算机二级C语言的考试感受
计算机二级c语言主要内容是熟练掌握C语言基础语法,了解常用数据结构和算法,能够使用C语言进行程序设计,编写简单的应用程序。 计算机二级C语言试卷类型: + 选择题 + 程序填空题 + 程序改错题 + 程序设计题 这四个部分组成,其中大题目的分数占60分。
64 0
|
11月前
|
存储 C语言
计算机中数据的存储(C语言)
计算机中数据的存储(C语言)
|
4月前
|
自然语言处理 编译器 程序员
【C语言基础】:编译和链接(计算机中的翻译官)
【C语言基础】:编译和链接(计算机中的翻译官)
|
3月前
|
存储 编解码 程序员
C语言17---计算机的存储规则
C语言17---计算机的存储规则
|
5月前
|
存储 算法 Serverless
22年+21年 计算机能力挑战赛初赛C语言程序题 题解
22年+21年 计算机能力挑战赛初赛C语言程序题 题解
58 2
|
5月前
|
Java Unix C语言
在我掉入计算机的大坑并深陷其中时,一门名为“C语言”的编程语言让我沉迷
在我掉入计算机的大坑并深陷其中时,一门名为“C语言”的编程语言让我沉迷
|
5月前
|
存储 算法 测试技术
通过一篇文章让你完全掌握计算机二级C语言的知识点
计算机二级C语言考试是许多计算机科学专业学生及编程爱好者的必经之路。它不仅是对基础编程知识的检验,更是对逻辑思维和问题解决能力的挑战。通过这门考试,考生需要掌握C语言的基本语法、数据类型、控制结构、函数、数组、指针以及文件操作等核心内容。 为了顺利通过计算机二级C语言考试,考生首先需要系统地学习C语言的基础知识。从变量和常量的定义开始,逐步深入到运算符的使用、条件语句和循环语句的应用。在学习过程中,不断通过编写小程序来巩固所学知识,比如计算两个数的和、判断一个数是否为素数等。
219 0
|
5月前
|
数据处理 C语言
【C语言宝库】- 操作符|详解进制转换|计算机小白必备技能(上)
【C语言宝库】- 操作符|详解进制转换|计算机小白必备技能(上)
64 0
|
5月前
|
C语言
论c语言在计算机专业中的重要性
C语言是计算机专业中非常重要的一门编程语言。作为一门高效、灵活的语言,它被广泛应用于操作系统、嵌入式系统和网络编程等领域。在学习计算机专业的过程中,掌握C语言编程能力是至关重要的。它不仅可以帮助学生理解计算机底层原理,还可以为他们以后的职业发展打下坚实的基础。因此,学习和掌握C语言对于计算机专业的学生来说是至关重要的。
112 0