后置返回类型
auto func(int, int) -> int; //声明
auto func(int a, int b) ->int; //定义
{
return 1;
}
//等同于
int func(int, int);
//auto 表示自动类型推断
inline内联函数
功能:
1.系统尝试将调用改函数的动作替换为函数本体,提升程序执行性能
inline int func(int test)
{
return 1;
}
int main() {
int a = func(5);
//int a = 1; 类似
return 0;
}
2.inline只是开发者对编译器的建议, 编译器可以尝试去做,也可以不去做, 这取决于编译器诊断功能
3.内联函数的定义要放在头文件,因为是本体替换,方便找到函数本体源代码并尝试将该函数的调用替换为函数体内语句
优缺点:
优点是减少调用时间
缺点代码膨胀问题, 内联函数体尽量越小越好
函数特殊用法部分
可能不常用,混个眼熟
1.一般返回类型为void时,可以不返回,也可以return; 不带任何类型,但是,可以调用一个返回类型为void的函数它让作为一个返回类型为void的函数返回值
void funca()
{
//...
}
void funcb()
{
return funca();
}
2.返回引用
int* myfunc()
{
int val = 9; //val要设置为全局
return &val; //语法没错,但是有巨大隐患,函数结束时,内存已被系统回收
}
int main() {
int* a = myfunc();
*a = 6; //函数结束时,内存已被释放,更改会存在隐患
return 0;
}
不带形参
常见
int main(void)
int main()//两种均可
int func(void)
{
}