C语言是跨平台的么?如果是 那么C语言的跨平台特性和java的跨平台特性有什么不同?
标准C和标准C++都是bai源代码级跨平台的, 也就是说你du用标准C/C++写的代码在zhiwindows下编译后就可以windows下运行, 在unix/linux下编译后就可以在unix/linux下运行.c语言能跨平台主要因为各个平台包括DOS,Windows,Linux,UNIX等都有c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能(不包括跨平台的系统调用)。但是这
标准C和标准C++都是bai源代码级跨平台的, 也就是说你du用标准C/C++写的代码在zhiwindows下编译后就可以windows下运行, 在unix/linux下编译后就可以在unix/linux下运行.c语言能跨平台主要因为各个平台包括DOS,Windows,Linux,UNIX等都有c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能(不包括跨平台的系统调用)。但是这些二进制文件不一样,Linux中的可执行文件一般情况下都不能在Windows中运行,因为他们是两个完全不同的操作系统,有不同的内核,不同的系统调用。但编译器会根据不同的平台生成不同的代码,使二进制文件能在专有的平台中运行,并且实现相同的功能。
总之,C的源代码是跨平台的而编译后的目标文件和可执行文件就不是跨平台的,跨平台主要是靠各个平台上的编译器。
在使用汇编语言的时代里,每个厂家都有一套自己的汇编语言,那时计算机程序与机器绑定,不是同一个厂家的程序在其他厂家的平台下就不能运行。直到C语言出现以后,我们才能将X86平台下的C语言程序源文件,换到POWER平台编译以后直接运行。因此C的跨平台移植功能是指在硬件架构上的移植性。 JAVA的跨平台能力是指其不需要指定操作系统可以直接运行。
C语言“一次编写,到处编译”,Java是“一次编译,到处运行”。
如C++创始人酸溜溜的说法,JVM造了一个新的平台,让所有Java程序只能在这个平台上运行,而C和C++的代码可以在几十个不同的平台上运行,从这个角度而言,C和C++是跨平台的,而Java不是。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)