内联函数inline
2017-08-07 19:08
232 查看
指定内联函数的方法很简单,只需要在函数定义处增加 inline
关键字。请看下面的例子:
#include <iostream>
using namespace std;
//内联函数,交换两个数的值
inline void swap(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int main(){
int m, n;
cin>>m>>n;
cout<<m<<", "<<n<<endl;
swap(&m, &n);
cout<<m<<", "<<n<<endl;
return 0;
}
当函数比较复杂时,函数调用的时空开销可以忽略,大部分的 CPU
时间都会花费在执行函数体代码上,所以我们一般是将非常短小的函数声明为内联函数。
由于内联函数比较短小,我们通常的做法是省略函数原型,将整个函数定义(包括函数头和函数体)放在本应该提供函数原型的地方。
缺点:
使用内联函数的缺点也是非常明显的,编译后的程序会存在多份相同的函数拷贝,如果被声明为内联函数的函数体非常大,那么编译后的程序体积也将会变得很大,所以再次强调,一般只将那些短小的、频繁调用的函数声明为内联函数
关键字。请看下面的例子:
#include <iostream>
using namespace std;
//内联函数,交换两个数的值
inline void swap(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int main(){
int m, n;
cin>>m>>n;
cout<<m<<", "<<n<<endl;
swap(&m, &n);
cout<<m<<", "<<n<<endl;
return 0;
}
当函数比较复杂时,函数调用的时空开销可以忽略,大部分的 CPU
时间都会花费在执行函数体代码上,所以我们一般是将非常短小的函数声明为内联函数。
由于内联函数比较短小,我们通常的做法是省略函数原型,将整个函数定义(包括函数头和函数体)放在本应该提供函数原型的地方。
缺点:
使用内联函数的缺点也是非常明显的,编译后的程序会存在多份相同的函数拷贝,如果被声明为内联函数的函数体非常大,那么编译后的程序体积也将会变得很大,所以再次强调,一般只将那些短小的、频繁调用的函数声明为内联函数
相关文章推荐
- inline内联函数和宏的区别
- inline内联函数 2
- C++ inline 内联函数
- C语言中的内联函数(inline)与宏定义(#define)详细解析
- 内联函数inline[matlab]
- 内联函数(inline)总结
- inline 内联函数的使用
- C++学习笔记(二):内联函数inline
- 重构--Inline Method(内联函数),Inline Temp(内联临时变量),Substitute Algorithm(替换算法)(五)
- C++进阶—>内联函数inline
- 内联函数inline
- 关于C++中的内联函数(inline)
- 新手入门:关于C++中的内联函数(inline)
- C语言里面的内联函数(inline)与宏定义(#define)探讨(转载)
- Inline内联函数的总结贴
- (inline)内联函数不能为虚函数的原因(virtual)
- inline 内联函数详解 内联函数与宏定义的区别
- inline c++内联函数
- inline内联函数
- __inline定义的内联函数和宏的区别