内联函数和constexpr函数
来源:互联网 发布:淘宝几百块的电脑主机 编辑:程序博客网 时间:2024/05/16 15:46
内联函数和constexpr函数
----雨竹清风
内联函数
内联函数可以避免函数调用时的开销。内联函数是将函数的返回值的类型前面加上关键字inline,这样就可以声明为一个内联函数了。
一般函数的调用开销较大,需要先保存寄存器中,返回时恢复,并且可能需要拷贝实参;程序将会转向一个新的位置进行执行。而内联函数仅仅是在编译的过程展开(替换)即可。
内联函数一般是用于规模较小的,流程直接,频繁调用的函数。最好不要有递归。
constexpr函数
constexpr函数是指能用于常量表达式的函数。函数的返回值类型以及所有的形参的类型必须是字面值(算数类型,引用,指针)类型,而且函数中必须只有一条return语句。
constexpr函数在编译的过程中被隐式的指定为内联函数。
constexpr函数的返回值并非是一个常量:
例如:
constexpr size_t scale(size_t cnt){return new_sz() * cnt;}
当形参cnt传递过来的是一个常量时,scale函数才会返回一个常量表达式。
int arr[scale(2)];//正确,返回的是一个常量
int i=2; int a2[scale(i)];//错误,传递的是非常量
内联函数和constexpr函数可以在过程中多次定义,但多个定义必须完全相同。因此可以将其放到头文件中。
0 0
- 内联函数和constexpr函数
- 内联函数和constexpr函数
- C++内联函数和constexpr函数
- C++ inline constexpr 内联函数和常量表达式函数问题
- (36) 默认实参、内联函数和constexpr函数
- nullptr,constexpr和constexpr函数
- constexpr函数
- constexpr函数
- 默认实参,constexpr函数
- 内联函数和宏
- 内联函数和宏
- 宏和内联函数
- 宏和内联函数
- 宏和内联函数
- 内联函数和宏
- 内联函数和宏
- 内联函数和宏
- define和内联函数
- java读写txt文件
- 把Java程序打包成jar文件包并执行
- R 学习 运算函数篇
- IP地址与子网划分
- 文件系统的简单操作df,du
- 内联函数和constexpr函数
- xcode7、iOS9 设置启动图片(Launch Image)
- 查看Oracle ERP用户名密码和修改用户名密码
- 忘记root密码
- 单源点最短路径
- 单源点最短路径--2
- 连接文件ln
- 访问权限
- dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解