美文网首页
1.C语言概念了解

1.C语言概念了解

作者: Zac程序员的日常生活 | 来源:发表于2019-02-13 23:15 被阅读0次

程序编译步骤

  1. 预处理

    宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法

  2. 编译

    检查语法,将预处理后文件编译生成汇编文件

  3. 汇编

    将汇编文件生成目标文件(二进制文件)

  4. 链接

    C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

流程处理如下图所示:


Snip20190213_1.png

gcc编译过程

分步操作

  1. 预处理

    gcc -E HelloWorld.c -o HelloWorld.i

  2. 编译

    gcc -S HelloWorld.i -o HelloWorld.s

  3. 汇编

    gcc -c HelloWorld.s -o HelloWorld.o

  4. 链接

    gcc HelloWorld.o -o HelloWord_elf

    代码内容及操作流程如下图所示:

    Snip20190213_2.png
    Snip20190213_3.png

一步操作

gcc HelloWorld.c -o HelloWorld

CPU内部结构与寄存器

64位和32位系统区别

  1. 寄存器是CPU内部最基本的存储单元
  2. CPU对外是通过总线(地址、控制、数据)来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那么这个CPU就叫8位CPU
  3. 如果总线是32位,寄存器也是32位的,那么这个CPU就是32位CPU
  4. 有一种CPU内部的寄存器是32位的,但总线是16位,准32位CPU
  5. 所有的64位CPU兼容32位的指令,32位要兼容16位的指令,所以在64位的CPU上是可以识别32位的指令
  6. 在64位的CPU构架上运行了64位的软件操作系统,那么这个系统是64位
  7. 在64位的CPU构架上,运行了32位的软件操作系统,那么这个系统就是32位
  8. 64位的软件不能运行在32位的CPU之上

寄存器、缓存、内存三者关系

  1. 按与CPU远近来分,离得最近的是寄存器,然后缓存(CPU缓存),最后内存
  2. CPU计算时,预先把要用的数据从硬盘读到内存,然后再把即将要用的数据读到寄存器。于是 CPU<--->寄存器<--->内存,这就是它们之间的信息交换
  3. 因为如果老是操作内存中的同一址地的数据,就会影响速度。于是就在寄存器与内存之间设置一个缓存
  4. 从远近来看:CPU〈---〉寄存器〈---> 缓存 <---> 内存

相关文章

  • 1.C语言概念了解

    程序编译步骤 预处理宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法 编译检查语法,...

  • 2.1.1HTML

    web概念概述 *JavaWeb:使用Java语言开发基于互联网的项目 *软件架构:1.C/S:Client/Se...

  • C++四种cast

    1.c风格强制转换 inta=1; charb=(char)a; 这种转换适用于面向过程的没有类的概念的c语言的转...

  • C语言介绍

    1.c语言的发展历史 --C语言的原型ALGOL 60语言(也称为A语言),最早的块结构语言。 ...

  • 1.c语言概述

    用途:用来编写程序的,即按照人的需求和想法编写一条条执行指令,并把这些指令发送到计算机的内存中使它执行这些指令,从...

  • c语言学习笔记

    1.c语言基础知识 谭浩强的c语言书籍 菜鸟教程 https://m.runoob.com/

  • 2016.9.11 PM 课堂笔记 C语言

    1.C语言程序的编译 (1)gcc xx.c 都会默认生成一个a.out文件(2)gcc 1.c -o 1(命名成...

  • 1.c语言编译过程

    4个步骤: Preprocessing预处理阶段: 即完成宏定义和include 文件展开等工作;生成.i文件。G...

  • 给表弟的计算机自学教程

    1.c语言视频:郝斌c语言教程 链接:https://www.bilibili.com/video/av80745...

  • Objective-C 是不是动态语言 ?

    一、动态语言和静态语言的概念 首先,我们了解一个概念:动态语言和静态语言的概念; 静态:编译期间动态:运行期间 动...

网友评论

      本文标题:1.C语言概念了解

      本文链接:https://www.haomeiwen.com/subject/cqnjeqtx.html