很高兴能为你解答这个问题!!!
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语言>汇编>大于二进制可执行文件)。
原因我就不具体说了。
+++++++++++如有错误,请多指教!++++++++++++++++++++++++++++