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

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-05-26 19:04:10

    当调用函数时,该参数将返回的地址、参数及局部变量压入栈中,在函数调用完成后释放局部变量和参数的栈空间,然后根据返回的返回值的真确地址继续执行程序。所谓的函数的开销就是计算机用来雅鹿和释放栈所需要的时间。

    对于一些函数体代码很短,又被频繁调用的函数,就不能忽视函数的开销,为解决问题,可以使用内联函数和宏,从而提高程序的运行效率。


  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. int main()
  10. {
  11.     long int i;
  12.     float result = 0;
  13.     
  14.     time_t start_time, stop_time;
  15.     printf("working...\n");
  16.     time(&start_time);
  17.     for(i = 1; i <= 1000000000; i++)
  18.     {
  19.         result += i;
  20.     }
  21.     time(&stop_time);
  22.     printf("using time:%ld\n",stop_time-start_time);

  23.     result = 0;
  24.     time(&start_time);
  25.     for(i = 1; i <= 1000000000; i++)
  26.     {
  27.         result = add_time(i, result);   使用函数调用方式,消耗时间
  28.     }

  29.     time(&stop_time);
  30.     printf("using time:%ld\n",stop_time-start_time);
  31.     
  32.     return 0;
  33. }

  1. ywx@yuweixian:~/yu/c$ ./test
  2. working...
  3. using time:5
  4. using time:12    函数调用消耗时间



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