许多流行程序(如Microsoft Office)是如何用C,C ++和汇编语言编写的,但是相同的安装程序可以在任何具有相应操作系统的计算机上运行?是因为安装程序实际编译了计算机上的源代码吗?是因为AMD和英特尔共享基本相同的指令集?
我听说C是可移植的,但在什么意义上Java比C更便携?什么是虚拟机的重点?
答案 0 :(得分:6)
答案 1 :(得分:0)
如果您阅读有关C历史的任何书籍以及它的设计方式和原因,您将看到C旨在允许相同的程序在不同的操作系统和硬件上运行
答案 2 :(得分:0)
原则上,C是一种非常便携的语言。实际上只有两个可移植性问题的来源:
行为未定义或深入到“实现定义”领域的无效程序,实际上在实现之间有所不同,但碰巧与任何操作系统/编译器/阶段一起工作他们为他们写的月亮组合。
事实上,C有一个非常轻的标准库,几乎所有有用的程序都依赖于与用户,操作系统和用户通信的其他接口(未在语言标准中定义)外面的世界。
顺便说一句:就第二点而言,除了Windows采用POSIX(一种基本上扩展的标准)之外,我们即将通过每个相关的真实系统来解决这个问题。 C并为您提供上面第2点中遗漏的大部分内容。但随后Android和iOS再次将事情分段......