在程序中使用函数会加快执行速度吗?

Bla*_*002 0 c c++ performance

我只是想知道如果在程序中使用函数可以加快执行时间?

说,我有简单的二进制搜索程序

#include <stdio.h>

int main()
{
   int c, first, last, middle, n, search, array[100];
   scanf("%d",&n);
   for ( c = 0 ; c < n ; c++ )
   scanf("%d",&array[c]);
   scanf("%d",&search);

   first = 0;
   last = n - 1;
   middle = (first+last)/2;

   while( first <= last )
   {
      if ( array[middle] < search )
         first = middle + 1;    
      else if ( array[middle] == search ) 
      {
         printf("%d found at location %d.\n", search, middle+1);
         break;
      }
      else
         last = middle - 1;

      middle = (first + last)/2;
   }
   if ( first > last )
      printf("Not found! %d is not present in the list.\n", search);

   return 0;   
}
Run Code Online (Sandbox Code Playgroud)

和相同的程序使用功能.

我刚添加了这个功能

int binarysearch(int *array,int m,int n)
{

    int l,u,mid;
l=0,u=n-1;
    while(l<=u)
        {
         mid=(l+u)/2;
         if(m==a[mid])
            {
             c=1;
             break;
         }
         else if(m<a[mid])
            {
             u=mid-1;
         }
         else
             l=mid+1;
    }
    return mid;
}
Run Code Online (Sandbox Code Playgroud)

代码只是为了理解目的!

现在哪个会跑得更快?使用函数或迭代程序编程?我说的一般不是关于任何具体的程序.

Nei*_*irk 7

函数CAN通过编码逻辑一次而不是重复几次来使代码更快,从而减少代码大小并导致更好的CPU缓存使用.函数通过复制参数和隐藏优化信息,可以使代码变慢.可以内联某些功能以消除这些缺点.有这么多变量你真的无法概括.

使用函数有助于使代码可读,可维护和可重用.