C和C++哪个更好用呢。当然大多数人可能要说C++。越高级的语言用起来是越爽。例如C中经常会出现内在泄漏。指针出错等问题。C++大多功能用类来封装,写一个基础类,整个团队都可以用。代码重用,大大缩短开发周期。还可以一层套一层。做扩展类,使其功能越来越强大。还可以将数据封装,统一释放,内存较好控制,不易泄漏。再如,C++支持函数重载,可用名字空间。可C就较麻烦了,一组人一起开发,容易出现函数重名,C++更聪明点儿,可以知道哪个函数是谁家的孩子,可C一见此问题就没辙了。但是C++的好处是有代价的,C++的效率更低,这对C++来说可是致命的。因为效率对于一个软件来说意义可是非同一般的。再则C的缺点,可以用开发人员的经验和技术来弥补。高手写代码就用指针,就是不怕内存泄漏。在这方面我还得多学。函数同名问题,可以把确认不让别的模块用的函数声名为static函数。这是一个很好的编程习惯。全局变量一般也声名为static。这样的细节性的问题,在学校里面可能是较难体会得到的。因为在学校很少写大型的代码,且大多情况下是一个人写代码。觉得自己用得爽就行,可达目的便好。而当一个小组一起开发时,就难免会有冲突。这时细节性的东西就显得用处很大了。有时候一个小问题会把一个开发组卡得郁闷无比。所以得练C,当能随手用C来实现C++的所有功能时,恭喜你,大家就得称你高手了。部门经验说了一句很不错的话。“做软件开发的都是平民,做硬件开发的都是精英。”越高级的语言门坎就越低,当然谁都能做了。当不了硬件精英,至少也得做个软件精英吧。
软件大小就是金钱,同样功能的软件,其大小要能少1M。那可省非常多成本。虽说软件的边际成本很低,但它要求硬件支持呀。而对硬件要求增加1M,那可就是得多投入大量资金,产品价格得抬高,市场优势也就没了。所以企业追求的都是高效率的代码。而学校里面,为什么用代码量来衡量工作量呢?低效率的代码就相当于垃圾,做出一大堆垃圾,应该受到惩罚才对呀,可是还要说工作量大,还要拿高分。真是太不合理了。
3 评论:
顶一个
test
其实只要会用,C++效率不算低。C和C++,JAVA和.net,争论这些其实意义不大。刀和剑都可以杀人,刀剑本身没有太大的优劣之分,主要还在于用的人了,刀偏长砍,剑偏长刺,看你如何扬长避短。C++同样也用指针,同样也会内存泄露,不会用的人照样挂掉。
其实那句“做软件开发的是平民,做硬件开发的是精英”也不好那么说,目前国内多数都是做集成的水平,不论硬件集成还是软件集成,都是平民;自己定游戏规则的,那就是精英。
至于“能用C来实现C++所有功能时,恭喜你,大家就得称你高手了”,卢老大也是这么认为的,但这个观点我持保留意见。这么做其实不难,但是代码维护和团队协作为此付出的代价太高,并且我从来没有见过哪个软件的代码效率瓶颈是在C++和C的区别上,这就得不偿失了。与其有时间去用C来实现C++的功能,还不如好好规划架构、做好线程调度和同步、减少不必要的线程、减少频繁的进栈/出栈、减少频繁malloc/free/memcpy等会更有效果
发表评论