一、后置返回类型
就是把函数的返回值放在参数列表后面
格式:auto func(int a)->int;//声明
二、内联函数: 在函数定义前增加关键字 inline
当函数体很小时,调用很频繁,改为内联函数,提升效率,普通函数调用时,会进行入栈出栈操作,定义为内联函数后,编译器会根据情况(决定权在编译器),在编译时将调用函数处替换为函数体内的语句,避免了入栈出栈操作。
内联函数的定义要放在头文件中(.h文件),这样需要用到这个内联函数的.cpp文件都能通过#include把这个内联函数#include进来。以便找到这个函数体的源代码,并尝试将其该函数的调用替换为函数体的语句。
优缺点:
1、代码膨胀的问题,所以内联函数要尽可能小
注意:各种编译器对inline处理各不相同,循环、分支、递归尽量不要出现在内联函数中。
奇怪的函数用法:
1、void函数可以返回一个void函数或者返回空值;
void funa()
{
}
void funb
{
return funa();//
return;//
}
2、函数返回指针类型或引用
int *func()
{
int val=9;
return &val;//这是绝对不可以的,因为函数调用结束后,该内存被系统释放了。
}
3、用引用做函数形参,C++中更喜欢用引用代替指针。
struct student
{
int num;
}
void func(student &stu)
{
stu.num=1001;
}
student abc;
abc.num=100;
func(abc);
cout<<abc.num<<endl;//1001