#include <iostream>
#include <sys/time.h>
using namespace std;
inline void func()
{
int a = 0;
a++;
}
int main()
{
struct timeval start_t, end_t;
double n_time = 0.0;
gettimeofday(&start_t, NULL);
for( int i = 0 ; i < 1000000000 ; i++ )
{
func();
}
gettimeofday(&end_t, NULL);
n_time = ((end_t.tv_sec - start_t.tv_sec)*1000*1000 + (end_t.tv_usec - start_t.tv_usec))/1000.0;
cout << "n_time = " << n_time << endl;
return 0;
}
增加了 inline 关键字的函数称为“内联函数”。内联函数和普通函数的区别在于:当编译器处理调用内联函数的语句时,不会将该语句编译成函数调用的指令,而是直接将整个函数体的代码插人调用语句处,就像整个函数体在调用处被重写了一遍一样。
有了内联函数,就能像调用一个函数那样方便地重复使用一段代码,而不需要付出执行函数调用的额外开销。很显然,使用内联函数会使最终可执行程序的体积增加。以时间换取空间,或增加空间消耗来节省时间