C和C++分别如何处理调用次数特别高的函数
这个问题怎么回答啊?谢谢了啊!
[解决办法]
C++用inline吧
其实调用次数特别高,对于现在的硬件,也不需要你多操心。编译器会优化,CPU有缓存
[解决办法]
楼主这个问题太模糊。
从编译器的角度来看,它无法知道运行期的情况,因此无法知道函数调用次数是否特别高,只能按部就班的编译,一些优化选项能够让它尽可能的内联函数,以减少运行期函数调用开销。
从人的角度来看,是否要使用内联来减少函数调用开销,可以放心的交给编译器去做,只需指定合适的编译器选项就可以了。真正关注的是性能瓶颈,并不一定调用次数特别高的函数开销就大,需要使用profiler工具精确的测量来找出程序中的性能瓶颈,有的放矢解决问题。
从c++和c来说,从C99开始支持inline关键字,C++一直都支持inline关键字,但是真正是否将函数内联展开,真正的控制权还是在于编译器,程序员只有建议的权利。