c++ vs c
有人说c好, c++不如c高效,易学, 如linux的作者
有人推崇c++,说比c强大,安全, 执行效率不比c差
我个人的观点是都对, 在c++失去安全, 强大时不比c慢, 不安全,不强大的c程序是失败的
先说安全性:
我认为安全性分两种, 一种是编译器做的, 如同样的程序c++编译器的waring可能多,这种我觉得和语言完全没关系
是因为c的编译器优化频率没有c++快
另一种是语法级别的,比如公有变量,私有变量
语法级别上其实用c也可以解决, 如私有变量/函数, 在声明前加static就可以保证只在文件内有效,当然一个功能要一个文件,不要一个文件里写很多功能
再说强大,c++比c多的特性是什么, 封装, 继承,多态, 他们同样可以用c的语法实现
先说封装,c本身有结构体可以封装变量, 成员函数的话用函数指针即可, 如下例
#include <stdio.h>struct A{ void (*pfun) ( void );}p;void fun ( void ){ printf("OK");}int main(){ p.pfun=fun; (*p.pfun)(); return 0;}
ss::func()
[解决办法]
对于OS核心来说,运行效率要求无比重要,其它的东西都得让道。所以linux的作者会说C更好——其实他没说汇编更好我都感到很奇怪了,大概是为了可移植吧。呵呵
对于小程序来说,反正不会有代码复用以及未来维护问题,用C简单解决岂不是比写一堆的C++类代码更好很多?
但要是系统够大,要是代码复用要求够多,要是未来的维护问题严重,而且其实运行效率要求并不变态。那,我不相信谁会死抓住C不放,宁肯付出无数倍的代价也绝不用C++......
[解决办法]
楼上所言极是,这是这个原有,才使C++ C各有各的主场。
[解决办法]