Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4471000
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-05-27 22:36:44

    声明为内联函数,就会在宏一样,每次调用时都将就地展开,没有函数调用的开销

    展开为内联函数意味着在调用函数的地方放置函数代码。由于没有进行函数调用,因此没有将返回地址和参数压入栈的开销

  1. #include <stdio.h>
  2. #include <time.h>

  3. float add_time(long int a, float b)
  4. {
  5.     float result;
  6.     result = a + b;
  7.     return result;
  8. }

  9. inline float add_time_inline(long int a, float b)
  10. {
  11.     float result;
  12.     result = a + b;
  13.     return result;
  14. }

  15. int main()
  16. {
  17.     long int i;
  18.     float result = 0;

  19.     time_t start_time, stop_time;
  20.     printf("add_time working...\n");
  21.     time(&start_time);
  22.     for(i = 0;i <= 1000000000; i++)
  23.     {
  24.         result = add_time(i, result);
  25.     }
  26.     time(&stop_time);
  27.     printf("using time:%ld\n",stop_time - start_time);

  28.     printf("add_time_incline working...\n");
  29.     result = 0;
  30.     time(&start_time);
  31.     for(i = 0; i <= 1000000000; i++)
  32.     {
  33.         result = add_time_inline(i, result);
  34.     }
  35.     time(&stop_time);
  36.     printf("using time:%ld\n",stop_time - start_time);

  37.     return 0;

  38. }
  1. ywx@yuweixian:~/yu/c$ ./te
  2. add_time working...
  3. using time:16
  4. add_time_incline working...
  5. using time:14
  6. ywx@yuweixian:






阅读(937) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~