JAVA能在任何平台上执行是因为有虚拟机的原因,但是c和C++不是也有虚拟机吗

 我来答
希奇孤拐
2013-02-13 · 超过12用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:27.5万
展开全部
C和C++没有虚拟机吧,他们是直接由编译器编译成汇编语言,再汇编成机器语言进行执行,由于C和C++没有虚拟机所以在在不同的系统环境下需要经过细节上的改变来适应不同机器上的编译器。而java在不同的平台上是不需要改变的,甚至不需要再次编译,因为虚拟机将平台上的差异处理掉了。
追问
你好,我也认为C和C++没有虚拟机,但是我刚看了毕向东老师的讲课,他说C++也有虚拟机,所以我纠结了
追答
这样的话,是不是可以理解为一种编译C和C++的程序,它将不同平台上的差异给封装了,这样对于C和C++程序而言在不同的平台之间就不需要修改了,类似于Java的虚拟机一般。这种写起来应该不是很复杂,但好像没有官方的不版本吧,不像Java的虚拟机有比较权威的版本。
匿名用户
2013-02-13
展开全部
C/C++ 没有官方标准的虚拟机系统。但是有解释器,同时支持预编译代码的执行。最有代表的Cint(C/C++ interpreter, C-int)。能支持大部分的C/C++语法和特性。其最大的优势是将C/C++作为脚本使用。和真正意义上的虚拟机系统是不同的,其实际使用意义并不大。同时虚拟机系统并不是万能的,并不是所谓的能在任何平台运行,虚拟机系统的局限性仍然存在。
虚拟机和解释器的不同之处请参考编译原理虚拟机章节。

Cint系统一般用于教学,很少实际使用,当然也存在某些shell系统采用了可以无缝调用的Cint系统。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nscboy
2013-02-13 · TA获得超过1054个赞
知道小有建树答主
回答量:826
采纳率:0%
帮助的人:555万
展开全部
c/c 哪有虚拟机啊。它们都是直接编译成目标机器的机器码来执行的。所以最多只能达到源代码级别的兼容。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-02-13 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:674万
展开全部
哪有。。。。。。。。。那是编译器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式