函数新特性、内联函数、const详解
函数新特性、内联函数、const详解
函数新特性
函数回顾与后置返回类型
// 1. 前面放 auto,标识函数返回类型放到参数列表之后
// 2. 而放在参数列表之后的返回类型是通过 -> 开始的
auto func(int a, int b) -> void
内联函数
函数定义前加 incline,这个普通函数就变成了内联函数
- 引入原因:函数体很小,调用又很频繁 的这种函数,咱们引入 incline(内联函数)
- incline 影响编译器,在编译阶段对 incline 这种函数进行处理,系统尝试将调用该函数的动作替换为函数本体,通过这种方式来提升性能
- incline 只是我们开发者对编译器的一个建议,编译器可以尝试去做,也可以不去做,这取决于编译器的诊断功能 (我们无法控制)
- 内联函数的定义就要放在头文件中,这样需要用到这个内联函数的 .cpp 文件就都能够通过 #include 把这个内联函数的源代码 #include 进来
优缺点:
- 优:上述
- 缺:代码膨胀 ==> 函数体越小越好
函数杂合用法
函数返回指针和返回引用的情况
int *myfunc()
{
int tempValue = 9;
return &tempValue; // 不可以,因为函数执行完毕后,tempValue 这段内存被系统回收,你不能够再使用
}
int &myfunc()
{
int tempValue = 9;
return tempValue; // 又是一个巨大隐患
}
没有形参的函数,可以写 void
int func(void)
{
return 1;
}