04.函数默认参数

04.函数默认参数

  • 函数默认参数与通过宏定义实现函数默认参数的对比
//通过宏定义实现函数默认参数
#define TESTFOO(m,n,k) TestFoo(m,n,k,1,2,3)

int TestFoo(int n1, int n2, int n3, int n4, int n5, int n6)
{
    
    
	return 0;
}
int main()
{
    
    
	TESTFOO(1,2,3);
	return 0;
}
//通过函数本身实现默认参数
int TestFoo(int n1, int n2, int n3, int n4 = 4, int n5 = 5, int n6 = 6)
{
    
    
	return 0;
}
int main()
{
    
    
	TestFoo(1,2,3);
	return 0;
}
  • 通过宏定义实现的缺点:
  • 1.不方便更改函数的默认参数
  • 2.宏定义不会做类型检查,而是直接替换

使用函数默认参数的注意事项

1.函数的默认参数可以写在函数声明的头文件中,也可以写在函数定义实现中,但是只能出现在其中一个地方,否则会报错
2.一般选择将函数的默认参数写在函数声明的头文件中,因为函数头文件一般可以提供,但是函数的定义和实现一般不会提供
3.当一个参数有默认参数时,该参数的右边必须都出现默认参数,防止出现歧义,也就是说带有默认参数的形参应该集中放在形参列表的最右侧

猜你喜欢

转载自blog.csdn.net/m0_45388819/article/details/113814069