c脚本的编译过程

作者: 会写bug的鸟 | 来源:发表于2018-05-27 20:51 被阅读35次

刚好有时间,跟着一位老师学习了一下c语言基础,我个人只会写一点PHP,因为PHP的zend引擎是是使用C编写的解释器(弱编译器),所以PHP语言归根结底是属于c的高级分支,PHP脚本在编译的过程中,第一步执行的是zend(c解释器)的解释,然后依次执行c类似的编译过程,所以PHP语言执行效率从理论上来讲不可能超过c,这也是c开发者看不起我们PHP语言的根本原因吧,可是仔细想想c/c++开发者能看得上什么语言呢,哈哈哈,玩笑话,不喜勿喷

流程图

test.c文件的内容

#include <stdio.h>

int main(void) {

        printf("交换机登录系统\n");

        printf("1登录%.3f\n", 1.112);

        printf("2创建账号\n");

        printf("3推出\n");

        return 0;

}

编译原文件,会在当前目录产生一个编译完的程序a.out

gcc test.c

a.out

./a.out 执行程序,接下来要做的是分析test.c到a.out的编译过程

重点  程序的执行过程拿C来举例          C(编译)=>汇编(二进制 01代码)=>可执行文件

gcc -E test.c -o test1  预编译test.c把预编译代码写入e.c, 并没有真正执行编译,而是把#include <stdio.h>,把stdio.h(C的基础类库)的代码和test.c的代码同时写入e.c,test.c的代码在底部

e.c

gcc -S e.c -o s.s 编译e.c到s.s,此步骤执行编译过程,此时 s.s中是编译之后内容

s.s

gcc -c s.s -o c.o 执行汇编,此时c.o中是汇编之后的内容(二进制文件)

c.o

gcc  c.o -o b.out 创建可执行文件

b.out

此时我们执行./a.out再执行./b.out发现输出结果一直,那好,完成了一次高级语言的编译过程

相关文章

  • c脚本的编译过程

    刚好有时间,跟着一位老师学习了一下c语言基础,我个人只会写一点PHP,因为PHP的zend引擎是是使用C编写的解释...

  • 如何设置ndk编译脚本属性

    通常我们在ndk编译时,都是一个编译脚本,将c/c++文件通过编译脚本Android.mk编译成动态库或者静态库。...

  • iOS 编译 lame

    网上找了许多编译lame的教程,结果都是编译失败,多次尝试后发现是编译脚本放错路径了,记录下编译的过程,把编译脚本...

  • php autoload自动加载类

    什么是__autoload? php是脚本语言,不同于c++只需要编译一次,php每次执行过程中都需要编译,所以提...

  • 【初识C语言】编译过程

    C语言编译过程 认识C编译执行过程,是C学习的开端。 我们来简单说C语言从编码编译到执行要经历一下过程: C源代码...

  • JSP-001-初识JSP

    编译的过程包括三个步骤: 解析JSP文件。 将JSP文件转为servlet。 编译servlet。 脚本程序脚本程...

  • Unity学习—脚本优化Tips

    本文原地址:Unity学习—脚本优化Tips 官方文档参考 代码编译原理 Unity 首先将脚本编译为中间语言 C...

  • C编译过程

    如果目标文件是由C代码编译生成的,整个程序的入口点是crt1.o中提供的_start,它首先做一些初始化工作(以下...

  • C++编译过程

    C++ 编译过程在介绍编译器之前,先简单地说一下 C++ 的编译过程,以便理解编译器的工作。编译(compilin...

  • C的编译过程

    预编译、编译、汇编、链接 a、预编译将.c 文件转化成 .i文件使用的gcc命令是:gcc –E对应于预处理命令c...

网友评论

    本文标题:c脚本的编译过程

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