C++基础之 "内联函数"
想看下内联函数跟普通函数外观有什么区别
[cpp]
//内联函数定义
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));
有点像宏。一般说来,内联机制适用于优化小的,只有几行的而且经常被调用的函数。还有递归函数大多也不支持。
内联函数的定义对编译器必须是可见的,以便编译器能够在调用点内联展开该函数的代码,所以仅有函数原型是不够的。
完整代码:
[cpp]
#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;
}
补充:软件开发 , C++ ,