因为C和C ++(以及许多其他不使用虚拟机或解释器的编程语言)被编译为直接在计算机硬件上运行的本机代码(汇编程序)。这意味着在运行中间代码(虚拟机的“汇编器”,这是java中的字节码和.NET中的IL)的硬件之上没有虚拟机。
具有虚拟机的平台(例如Java和.NET)使用JIT编译器,该编译器在运行时将字节码/ IL编译为可在硬件上运行的汇编程序,在此过程需要花费一些处理器一定的时间周期,但同时可以在运行时做出判断或选择更明智的决定以优化编程代码。从理论上讲,此过程可能比编译C / C ++代码产生的汇编程序快或快,但实际上,情况并非如此,而是正好相反。
因此,最好使用一种语言在汇编程序直接汇编到汇编程序;还有另一个大问题就是内存管理。
C和C ++会强制你执行自己的内存管理,如果你在控制台等内存有限的情况下,这是最好的方法。例如,使用可编译为IL /字节码的语言,可以将内存管理留给虚拟机,这意味着你无法直接对其进行控制。
有人这样比喻C,有人称其为可移植,但实际上并不是那么简单可移植,有函数指针语法繁琐。
我们了解的C ++:与C类似,但更容易理解,并带有面向对象的思想。
讨厌C ++语言好像是新潮,实际上只是讨厌那些刚把它当作第二语言学习的开发者,认为语法丑陋,学习难度大。
领取专属 10元无门槛券
私享最新 技术干货