旧东西,没这个必要!
Finding!!!
"所以pow(2,count-1)+pow(2,count-1)次abs()函数的调用>pow(2,count)"
你这话的意思是宁可循环操作,也不调用函数,因为函数的代价太大了.
也就是说改后的程序效率不如没改的.
宁可循环操作,也不调用函数.有道理!
可惜你没看程序,其实在循环中也调用了函数Calculate(int count,int sum)啊!
不过还是谢谢你!在你的话中到经过头脑分析的东西!我也受益! 听了怎么这么难受
我也不多说了,C版怎么人人都跟要吃人似的.不是来学习,是来攀比出难题看别人献丑的
你就记住用了函数,需要一个寄存器储存它的返回值和保护调用现场(大概是状态寄存器)用来使运行回到调用地点
.然后调用的时候再读取寄存器内的值.而且系统不会记忆这个函数返回值即使同个函数,
调用一次他就会从新运行一次
全局函数不但危险,效率也很满,系统需要到数据区去取这个变量,又多了一个寻址,寻址是系统最费时间的
当你写的代码编译器编译时,它会试图在语义分析阶段会用代码优化器来优化这个代码.
编译器编译阶段主要就是这个费时间,那些词法分析语法分析不费时间.
所以尽量用多的循环在外面,以免破坏系统的优化
(以后少在C区讨论了)