用2进制,汇编,c语言编写同一个软件分别占多少空间

如题所述

很高兴能为你解答这个问题!!!

1. 但是如果你能够提出这样的问题来,说明你对C语言,计算机工作原理了解的还不够。

2. 因为计算机只能存储与运算二进制数值,(除去特殊的模拟芯片,这些芯片一般也只是转换芯片,即A/D  D/A芯片)。

3. 请百度计算机科学之父:图灵 

PS:所以你的题目我该怎么理解呢?

先来解释下C语言,汇编语言,二进制可执行文件。

    C语言编写完成时是文本文件(其实文本文件本质也是二进制文件,因为计算机只会二进制),需要编译器编译后生成二进制可执行文件。

    汇编语言最接近二进制文件,它的汇编器只需要将汇编指令助记符替换为对应的二进制值(包括地址、符号替换,逻辑优化,等等)。(注:鄙人只学习过ARM汇编,且水平有限,所以此条仅供参考)

    二进制可执行文件:之所以称之为二进制可执行文件是为了体现“可执行”这个特性,因为计算机内一切都是二进制(别嫌我啰嗦,重要的事情说三遍~~~),他可能是类似C语言的某种高级语言编译而产生的'可执行'二进制文件。

    ==================我是分割线============================

    现在来假设你的题目:

    一个可执行二进制文件在二进制(.bin)状态和,汇编状态(.asm),C语言状态(.C)哪个文件在磁盘的占用空间小?

    答:占用空间:C语言>汇编>大于二进制可执行文件。(大多数情况下)注意把C语言用到的库文件(.lib或.so或.dll等)计算在内

    但是C语言可读性,可编写性都大于汇编,汇编大于可执行二进制文件。

    完成同一个功能的程序,使用C语言、汇编、可执行二进制直接编写来实现,到他们全部被编译器、链接器转化为二进制可执行文件后的大小关系。

    答:这个问题与编译器关系,以及编写汇编、C语言人的水平有很大的关系,一般情况下我们认为:占用磁盘空间(C语言>汇编>大于二进制可执行文件)。

    原因我就不具体说了。

    +++++++++++如有错误,请多指教!++++++++++++++++++++++++++++

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-21
这个问题一点意义都没有,用嘴巴写的话最不占空间
相似回答