当前位置: 技术问答>linux和unix
为什么LINUX下编程很少用C++,而是用C更多
来源: 互联网 发布时间:2015-10-26
本文导语: 为什么LINUX下编程很少用C++,而是用C更多, 这好像跟在WINDOWS下的编程相差很大,WINDOW下大部分都是用C++,C#,JAVA,等面向对像语言. 为什么LINUX下则更多用C呢? 用C实现面向对像编程方便吗? | 比如内核...
为什么LINUX下编程很少用C++,而是用C更多,
这好像跟在WINDOWS下的编程相差很大,WINDOW下大部分都是用C++,C#,JAVA,等面向对像语言.
为什么LINUX下则更多用C呢?
用C实现面向对像编程方便吗?
这好像跟在WINDOWS下的编程相差很大,WINDOW下大部分都是用C++,C#,JAVA,等面向对像语言.
为什么LINUX下则更多用C呢?
用C实现面向对像编程方便吗?
|
比如内核开发:C比C++的执行效率会高一些(对于同一种水平写有关操作系统的内核方面的功能的时候),而且C++程序编译后会比C要大一些(基于同等条件下),还有一点就是C比C++出现得更早一些,这就是习惯,早期的内核是用C写的,总不能让写它们的人全部用C++来实现一遍吧???人家也没这个精力,还要去测试稳定性,还要去学习C++(也许有些高手只会C而不会C++的,好像只有我们这种入门级程序员才会用多种语言,大师级的人可能很多只用一两种语言)
比如应用程序开发:GTK之类的,为何这个库会用C语言开发,我想主要是习惯,可能最先开发它的人最熟悉C语言,而后来就没必要用C++重写了,再者,C与LINUX内核结合更紧密一些,它本身是用C实现的,虽然库函数同样支持C++调用,在进行运态库支持时,C++动态支持库明显比C动态支持库要大得多,在PC机上没什么感觉,但在资源极其有限的嵌入式设备上这是一个大问题。
当你在GTK上做开发,就只能用C了,因为它仅提供了C接口,就像是C库中如果不提供C++接口的话,你写代码时就得每次加上extern C之类的,总有点麻烦吧??再者,GTK整个实现思路都是基于C的。
还有一点:C++比C要复杂得多,如果你很熟悉了C,如果用C又能解决你的问题,而且也很方便解决问题,何必要跟自己过意不去呢?再投入很多精力去学C++?当然,对于高手来说,C和C++没什么区别,学C和学C++并没有什么难易,复杂简单之分,C同样地复杂,但毕竟像我们这种不起眼的平庸之辈还是最多的啊,所以还是要考虑语言上的差异,至少对我来说要考虑,如果你是高手的话,当然就不需要考虑任何东西了!!!!
在应用级程序开发时,如果你不是用的人家的基于C的开源项目,并且没有太多的硬件资源方面的限制,那么用C++比用C更方便,毕竟C++更容易OO(C也可以OO)
比如应用程序开发:GTK之类的,为何这个库会用C语言开发,我想主要是习惯,可能最先开发它的人最熟悉C语言,而后来就没必要用C++重写了,再者,C与LINUX内核结合更紧密一些,它本身是用C实现的,虽然库函数同样支持C++调用,在进行运态库支持时,C++动态支持库明显比C动态支持库要大得多,在PC机上没什么感觉,但在资源极其有限的嵌入式设备上这是一个大问题。
当你在GTK上做开发,就只能用C了,因为它仅提供了C接口,就像是C库中如果不提供C++接口的话,你写代码时就得每次加上extern C之类的,总有点麻烦吧??再者,GTK整个实现思路都是基于C的。
还有一点:C++比C要复杂得多,如果你很熟悉了C,如果用C又能解决你的问题,而且也很方便解决问题,何必要跟自己过意不去呢?再投入很多精力去学C++?当然,对于高手来说,C和C++没什么区别,学C和学C++并没有什么难易,复杂简单之分,C同样地复杂,但毕竟像我们这种不起眼的平庸之辈还是最多的啊,所以还是要考虑语言上的差异,至少对我来说要考虑,如果你是高手的话,当然就不需要考虑任何东西了!!!!
在应用级程序开发时,如果你不是用的人家的基于C的开源项目,并且没有太多的硬件资源方面的限制,那么用C++比用C更方便,毕竟C++更容易OO(C也可以OO)
|
和blankman(菜鸟)说的差不多,众所周知,c的长处就是在效率上,不方便的就是资源管理(如动态内存分配),而c++在此上提供了OO和泛型,但也增加了语言的复杂性,在提倡简单就是美的unix/linux环境下,如果不注意使用OO容易导致简单问题复杂化。书中作者指出C++在GUI、多媒体工具包、游戏方面发挥得很好,并提倡针对你程序的应用使用已有的类库,如用来编写图形界面的Qt就是一个例子。我体会的就是在unix/linux下尽量用最简洁、有效的方式进行程序设计。此外,c和这两个平台的关系是再密切不过了,系统用c设计和实现也是一个传统的原因吧!书还在研读中、思想还在体会中...
|
不是用C更多,感觉是因为C更符合linux的习惯。
因为它封装的更少,用c可以更好的接触到OS的内部,更好的控制机器
因为它封装的更少,用c可以更好的接触到OS的内部,更好的控制机器
|
做图形界面程序,个人认为qt还是比gtk更适合
|
不同意gnome是linux标准一说,俺使用的系统就是kde的桌面,编程的界面也选用qt来干。没有什么不好阿!