计算机是怎么读懂C语言的?(上)

简介: 计算机的两个环境

前言

在我之前的一篇文章中,写到了目前主流语言的优缺点,那其实对于语言来说,剖析到最底层,都是二进制,只是语法不同,那计算机是怎么区分语言,在程序写好到结束中间,发生了哪些事情?本篇文章从C语言角度出发,剖析一下从写好程序到运行发生了哪些事情。


程序环境

在ANSI C下的任何程序当中,都有两种不同的环境:

1. 翻译环境:这个环境当中可以将程序的源代码转换成可执行的机器指令。

2. 执行环境:它用于实际执行代码。

翻译环境

翻译环境可以将程序翻译成可执行的机器指令,对于其他语言也是这样,只有翻译成可执行的机器指令,计算机才可以识别,那C语言的翻译阶段是这样的:

image.png


在C语言中,翻译的大致过程就如上图所示,在程序写好进行编译的时候,会编译器(集成开发环境)会对每个程序文件(.c)单独进行翻译,翻译成一个目标文件(在windows环境下面后缀是.obj),每个目标文件都进过链接器,链接器外部接链接库,通过链接库和链接器生成一个可执行程序(.exe)。

翻译环境分类

翻译环境大致分为编译和链接两个阶段

编译

编译时翻译环境最开始的阶段,他分成三个步骤:

1. 预编译(预处理)

2. 编译(处理)

3. 汇编

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