天天看点

C++基础之

//内联函数定义
inline int sum(int a,int b){
  return a + b;
}
//普通函数定义
int sum1(int a,int b){
  return a + b;
}      

多了inline关键词。

想起之前写C语言,把一些重复做的事情封装成一个函数,真是很大的进步。但是他们说调用函数比直接代码要慢些。内联函数有什么好处呢?避免了函数调用的开销。也就是说如果我写下面的代码:

printf("a+b=%d\n",sum(a,b));

它会把代码展开变成

printf("a+b=%f\n",(a + b));

有点像宏。一般说来,内联机制适用于优化小的,只有几行的而且经常被调用的函数。还有递归函数大多也不支持。

#include <stdio.h>
//内联函数定义
inline int sum(int a,int b){
    return a + b;
}
//普通函数定义
int sum1(int a,int b){
    return a + b;
}

int main(int argc, char* argv[])
{
    int a = 1,b = 2;
    //下面的调用等于 printf("a+b=%f\n",(a + b));
    printf("a+b=%d\n",sum(a,b));
    //普通函数调用
    printf("a+b=%d\n",sum1(a,b));

    return 0;
}      

继续阅读