1、函数中某一个形参设置了默认值,则其后面的所有形参需设置默认值

2、函数声明时可以设置默认值,函数定义时也可以设置默认值,但是不能同时设置默认值,或者在声明时设置,或者在定义时设置。

3、假如调用函数在定义函数之前使用,且函数定义时设置了默认形参,且调用时也用了默认实参,则编译时会出错,因为编译时按文件的前后顺序进行的,调用函数时,只看到了声明函数,声明函数没有默认形参,而调用时,省略了实参,会出错,假如将定义函数移到调用之前,就不会出错。

#include <stdio.h>
//int test(int a,int b=10,int c= 20, int d= 30);
int test(int a,int b,int c,int d);
int main()
{
test(10);
return 0;
}
int test(int a,int b=10,int c=20,int d=30)
//int test(int a,int b,int c,int d)
{
printf("%d",a+b+c+d);
return 0;
}