c++代码编译和运行的区别

目录

一、前言

二、编译

三、运行

四、总结


一、前言

        最近在学习c++多态的时候遇到了一个问题,因为多态分为静态多态动态多态,然后它俩的区别是静态多态在编译阶段就确定了函数地址,而动态多态在运行阶段确定函数地址。

        但是我对代码的编译阶段和运行阶段了解还是有些薄弱,然后查了相关的资料,于是想记录下加深下印象,同时写下自己关于编译和运行的理解。

二、编译

        编译的基本概念就是将你写的c++代码转换为机器可以执行的二进制代码,然后这个过程由编译器执行。

通常它会有以下几个步骤:

  1. 预处理:编译器处理源代码中的预处理指令比如:#include引入头文件,#define宏定义,删    除注释等。
  2. 词法分析和语法分析:这个过程就像是理解题目的意思,编译器会检查你的源代码是否符合   C++的语法规则,比如是否有拼写错误、括号是否匹配等。
  3. 语义分析:就像你理解题目的意图一样,编译器会检查你的源代码是否有意义,比如变量是否声明了类型、函数是否有正确的参数等。
  4. 生成目标代码:如果前面的步骤都通过了,编译器就会开始“翻译”你的源代码,将其转换为计算机能理解的机器语言(二进制格式)。

        以上就是编译的基本步骤, 编译之后你还会得到你会得到一个或多个“翻译后”的答案文件(目标文件),这些文件包含了计算机可以执行的指令。

三、运行

        在编译阶段得到了目标文件之后,我们还需要一个执行者(操作系统和加载器)来执行这些指令,这就是运行阶段。

运行步骤如下:

  1. 加载:操作系统会负责把你的答案文件加载到计算机的内存中,并为它分配必要的资源。
  2. 准备执行环境:加载器会设置程序的初始执行环境,比如设置堆栈、寄存器等。
  3. 执行:一旦准备就绪,CPU就会开始逐条执行内存中的指令,就像你按照步骤解答数学题一样。

      执行完成后,你会看到程序的输出结果,就像你解出数学题的答案一样。 

四、总结

        简单来说,编译就像是把你的C++代码翻译成计算机能理解的语言,而运行则是让计算机执行这些指令并得到结果。

        举一个例子:你在facebook遇到了一个老外,但是你不懂他说的外国话,然后你使用了网易词典翻译,在翻译过程中,词典进行了语法检查,看看是否有语法错误,同时对代码进行浓缩精简,最后得到了我们可以理解的中文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大卫的纯爱战士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值