所以为什么说C语言不能实现跨平台运行,就是因为它编译出来的 输出文件的格式,只适用于某种cpu,其他cpu不认识啊。 我们所说的跨平台运行,并不是指hell.c这个文本文件的运行。因为文本文件本身也没办法运行。运行的只是它的编译结果hello,而这个由0和1组成的编译结果,不同的cpu和平台,他们的格式不同。所以C语言编译...
从事软件开发多年对于C/C++用的比较多,可以明确说这两种编程语言也是支持跨平台,肯定还是有很多人问什么是真正意义上的跨平台,所谓的跨平台就是同一套代码在不同的操作系统都能直接去运行,这里面涉及到一个很重要的问题,在java这门编程语言刚开始流行的时候就提到了跨平台的功能,在windows上运行的jar包直接放在linux...
这种代码不是具体的机器指令,而是不同平台上的虚拟机约定俗成的语言,可以称之为“字节码”,虚拟机读...
java用的是不同的jvm来实现跨平台,并不是java语言可以跨平台,能理解吗?比如说话,你会汉语,有个人既会英语,又会汉语,你和他可以交流,你要和老外说话,就要借助他做翻译,才可以交流.你是java语言程序,会多语言的人是jvm,老外是操作系统平台.不同的操作系统平台的jvm不同,就可以实现java的跨平台....
C语言本来就是跨平台的,不过是“源码级”跨平台。本来就是存在针对linux、windows的不同的编译器。所以有C语言“一次编写,到处编译”,Java是“一次编译,到处运行”的说法。如C++创始人酸溜溜的说法,JVM造了一个新的平台,让所有Java程序只能在这个平台上运行,而C和C++的代码可以在几十个不同的...
c语言能跨平台主要因为各个平台包括DOS,Windows,Linux,UNIX等都有c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能(不包括跨平台的系统调用)。但是这些二进制文件不一样,Linux中的可执行文件一般情况下都不能在Windows中运行,因为他们是两个完全不同的操作系统,有不同的内核,...
c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的 exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码 科普一下,C最早是出现在Unix下的,Windows那都是后话了,C出现的时候Windows...
C语言是不具有二进制级别的跨平台性的。你在Linux上使用C语言和在Windows上使用C语言,所用到的编译器不同,涉及到与系统相关的调用,涉及到的函数、数据结构都会不同。这让C语言在跨平台开发的时候工作量成倍增加。不仅仅是跨操作系统,即便是同一种操作系统,总线位数不同,也会影响C语言的表现。 早期电脑都是16bi...
首要需要明白的是,Cygwin不是一个跨平台模拟器,它不能让我们把linux上编译出来的程序在windows上运行(像wine那样),而是一个跨平台的编译器,也就是提供代码级的跨操作系统兼容性,我们在linux下写的符合POSIX标准的C程序可以在windows下面进行编译,Cygwin提供了一套在windows下可以使用的Linux的API ...