默认参数
可以给函数的形参指定一个值作为这个形参的默认参数,当不给参数传实参时,使用这个参数
eg:
1)有函数声明时,默认参数可以放在函数声明或者定义中,但是只能二者之间选择一种
2)没有函数声明时,默认参数在函数定义中
3)在具有多个参数的函数中指定默认值时,默认值都必须出现在非默认参数的右边。即一旦某个参数指定默认值,则其右边的参数都要指定默认值
eg:
int A(int i , int j = 1 , int k = 2)-------- 正确
int B(int i = 0 , int j , int k = 2)-------- 错误,j 未指定默认参数
int A(int i , int j = 1 , int k) -------- 错误,k未指定默认参数
占位参数
有类型声明但是没有变量名
eg:
void func(int a, int)
{
}
调用:func(1,2);
可以和默认参数结合使用
eg:
void func(int a, int = 0)
{
}
调用:调用:func(1);
struct A
{
unsigned int a : 2;
unsigned int b : 10;
unsigned int : 2; // 无名位域
unsigned int c : 10;
};