为什么Linux下编程很少用C++,而是用C更多?

在一个关于LKML的讨论中,Linus给出了为什么不用C++来写Linux内核的理由:

“事实上,我们曾经尝试过用C++来写,是在1992年的时候。很糟糕。相信我--用C++来写内核代码是一个非常愚蠢的想法。”

为什么Linux下编程很少用C++,而是用C更多?

 

“实际上,C++编译器是很不可靠的。在1992年的时候情况就很差了,而且一些基础的东西到现在还没有改变:(1)整个C++对Exception的处理根本就是不完整的,特别是在写内核的时候。(2)任何喜欢把跟内存分配有关的功能匿藏起来的编译器或者程序语言对于编写内核来说都是错误的选择。(3)在C里面你也可以写面向对象的代码(写文件系统的时候很有用),是不需要C++的。”

为什么Linux下编程很少用C++,而是用C更多?

 

从技术角度猜测一下:从对编译的机器代码的把握度,C比C++好多了。系统程序员几乎看着c就没知道编译器里出来的汇编代码的样子。而c++编译器出来的就复杂多了,一个对象this指针,再加上各种虚表,当然还有各种拷贝构造等等。要完全把控确实不容易。

从c++的高级语言特性来说,模板,多态等特性,到底在系统开发中用还是不用呢?这是一个很现实的问题。除非能够很好的把控这些高级特性,否则轻导致编译出来的代码膨胀,重则导致奇怪的问题。而且内核调试和应用程序调试完全不是一回事啊…所以bochs虽然都转成c++了,但开发说明里明确要求不允许使用模板。

为什么Linux下编程很少用C++,而是用C更多?

 

最后还有一点不能忽略,linux内核是跨平台的,所有的平台都有对应的c语言编译器,而且应该都优化的不错。而不是所有的平台都有c++编译器,即使有也不一定优化的效率很高。

当然还有其他因素。。。

为什么Linux下编程很少用C++,而是用C更多?

 

感谢您的阅读,以上就是对为什么Linux下编程很少用C++,而是用C更多的一些看法,其实任何编程语言都有他自身的魅力,你要选择一门你所喜欢的编程语言并且迎合它,也就是想办法将他的魅力发挥到极致。

好了,更多 C/C++相关的内容尽在C语言/C++学习君羊,“点击链接”,敬请关注!

原文链接: https://www.cnblogs.com/mu-ge/p/13785806.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    为什么Linux下编程很少用C++,而是用C更多?

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/203740

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午9:37
下一篇 2023年2月12日 下午9:38

相关推荐