一、默认实参
1.调用含有默认实参的函数时,可以省略函数实参(为默认值),使用如下
void fx(int a, int degree = 37, char ch = '?')
fx(1);
fx(1,4,'#');
2.只能省略后面的形参,因此常把常用的默认实参放在参数列表的后面
3.函数声明:可以在声明处指定默认形参,但若已指定默认形参,则不可在定义处再写默认实参
void fx(int a, int degree = 37, char ch = '?');
void fx(int a, int degree, char ch)
{
}
void fx(int a, int degree = 37, char ch = '#');
void fx(int a, int degree = 37, char ch = '?')
{
//不可
}
二、内联函数
1.使用内敛函数可以避免函数调用的开销,内敛函数相当于在调用点“内敛地”展开,类似宏定义函数,使用方法如下
inline void print(int a)
{
cout << a << '\n';
}
2.一般来说,内敛机制用于优化规模较小,流程直接,频繁调用的函数
三、constexpr函数
1.constexpr函数是指能用于常量表达式的函数,有以下约定:返回值以及形参类型都得是字面值类型,而且函数体中必须有且只有一条return语句
constexpr int fx()
{
return 666;
}
2.为了能在编译过程中随时展开,constexpr函数被隐式地指定为内联函数,同时内敛函数可以在程序中多次定义
四、调试帮助
1.预处理功能:assert和NDEBUG