关于c++的inline关键字
2017-01-07 16:40
218 查看
C++中支持内联函数,其目的是为了提高函数的执行效率,用关键字inline放在函数定义的前面即可将函数指定为内联函数,内联函数通常就是将它在程序中的每个调用点“内联地”展开,比如下面这个内联函数:
如果在程序中调用这个函数max(a,b),则在编译时展开为:a>b?a:b;从而消除了把max写成函数的额外执行的开销。
下面简单介绍下函数的优点与缺点:
优点:
1、程序可读性更好;
2、如果需要修改,修改函数要比找出并修改每一处等价表达式容易很多;
3、使用函数可以确保统一的行为,每个测试都保证以相同的方式实现;
4、函数可以重用,不必为其他应用程序重写代码。
缺点:
调用函数比求解等价表达式要慢很多,在大多数的机器上,调用函数都要做很多工作,调用前要保存寄存器,并在返回时修复,复制实参,程序还必须转向一个新位置执行。
inline int testInline(int a,int b) { return a > b ? a : b; }
如果在程序中调用这个函数max(a,b),则在编译时展开为:a>b?a:b;从而消除了把max写成函数的额外执行的开销。
下面简单介绍下函数的优点与缺点:
优点:
1、程序可读性更好;
2、如果需要修改,修改函数要比找出并修改每一处等价表达式容易很多;
3、使用函数可以确保统一的行为,每个测试都保证以相同的方式实现;
4、函数可以重用,不必为其他应用程序重写代码。
缺点:
调用函数比求解等价表达式要慢很多,在大多数的机器上,调用函数都要做很多工作,调用前要保存寄存器,并在返回时修复,复制实参,程序还必须转向一个新位置执行。
相关文章推荐
- 一个关于C++ Inline关键字的引发的一个错误
- 挑战30天C++入门极限-关于C++中的内联函数(inline)
- [c/c++]关于volatile关键字的说明以及测试
- 关于C++的 explicit关键字
- C/C++关键字static,const,inline,define,typedef
- C++中关于return关键字的使用
- 关于C++中的内联函数(inline)
- C/C++中关键字static,const,inline,define,typedef的用法及其意义
- 关于C++中的内联函数(inline)
- [C/C++]关于C++类成员函数的重载、覆盖、隐藏与virtual关键字
- 【zz】C/C++关键字static,const,inline,define,typedef
- [c/c++]关于volatile关键字的说明以及测试
- [转]C/C++关键字static,const,inline,define,typedef
- C/C++中关于CONST关键字的一点说明
- 关于C++中的内联函数(inline)
- 关于c++的explicit关键字(有空译成中文)
- 挑战30天C++入门极限-在C++语言中,关于内联函数(inline)的入门教程
- [转]C/C++中关键字static,const,inline,define,typedef的用法及其意义
- 关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性。
- 关于C++的explicit关键字