美文网首页
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语言概念了解

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