再说说C语言效率的问题
大家都知道C语言效率高,其实我的理解是,他真有那么高吗?呵呵
他再高也高不过汇编吧。其实真要理解效率问题,一定要还原到编译器角度来看待才能真的理解。
如果LZ以后有机会,可以研究一下C语言编译器,试着实现一下各种C语法到汇编的转换你就明白了。
C的高效率是要付出巨大工作的,对应每个不同的硬件平台都是要对对应的C编译器做具体优化。而且比如,有的平台其实不支持浮点运算,但在语法上却要保证无误。如:8051系列的单片机。
当在这样的平台你使用浮点时,要么编译器不理会直接按整型处理,要么编译器用“软方法”实现浮点算法。在这个实现过程中,其实转化成N句汇编语句,那你的效率,就真不好说了。呵呵
再来看看C++,大家都知道他好用,但也知道他的效率一般来说不如C。
特别是你用到C++的诸多高级特性的时候,编译出来的代码,肯定要比C多的多了。他的效率也自然下来了。
那是不是一定呢?
不一定呢,对于一个特定的功能,有人就是能用C++写出高效的代码。但相信我,如果是在做一些比较低层的事情,这样做没什么很大的意义,还不如用C。
C++的出现就是为了方便人类理解和规划程序,然后编译器根据C++的语法规则去解释成汇编。这是典型的用时间和空间换取易用性的做法。
[
本帖最后由 jig 于 2009-9-25 00:18 编辑 ]