程序是怎么跑起来的? —— CPU 是什么?C/C++程序的运行

1. 概念初步

  • 程序:计算机的程序,和做饭、运动会的程序一样,指的是“做事的先后次序”;
  • 程序的组成:程序是指令(及物动词)和数据(宾语)的组合体;
    • C 语言 printf("hello ");,这个简单的程序,printf是指定,hello是数据;
  • 机器语言:CPU 能够直接识别和执行的只有机器语言。
    • 使用C、C++、Java 等高级语言编写的程序最后都会转化为机器语言;
  • 正在运行的程序存储在什么位置?
    • 硬盘和磁盘等媒介上保存的程序被复制到内存(内存中是其副本)后才能运行;
  • 内存地址:标记和指定命令和数据的场所;
    • 地址由整数值表示;
  • CPU 的作用:
    • 根据程序的指令来进行数据运算,并控制整个计算机的设备;

2. CPU 是什么?

CPU 负责的就是解释和运行最终转换成机器语言的程序内容;

CPU 和 内存(memory)是由许多晶体管组成的电子部件,通常称为 IC(Integrated Circuit,集成电路);

CPU 的组成(各部分之间的电信号相互流通):

  • 寄存器;

    暂存指令,数据等处理对象;可将寄存器看做内存的一种;根据种类的不同,一个 CPU 内部会有 20~100 个寄存器;

  • 控制器;

    控制器负责把内存上的指令、数据等读入寄存器,并根据执行的结果来控制整个计算机。

  • 运算器:运算器负责运算从内存读入寄存器的数据。

  • 时钟:负责发出 CPU 开始计时的时钟信号;

    • Pentium 2GHz 就表示时钟信号的频率为 2GHz

3. C++程序的运行

生成一个 C++ 程序共有三个步骤:

  • ①预处理:代码在预处理器中运行,预处理器会处理代码中的元信息(meta-information)
    • 预处理指令以 # 字符开始,#include <iostream> 就是如此,本例中,include 指令是告诉预处理器,提取 iostream 头文件中的所有文件内容并提供给当前文件,
    • 当然头文件最常见的用途是声明在其他地方定义的函数;
  • ②编译:代码被编译为计算机可以识别的目标文件;
  • ③链接:独立的目标文件链接在一起形成一个应用程序;
原文地址:https://www.cnblogs.com/mtcnn/p/9423948.html