c语言(注意不是C++)函数能不能设置默认值

注意,不是C++哦~!如果不能的话,有没有办法模拟呢?
2025-04-03 00:14:32
推荐回答(1个)
回答(1):

C语言不支持默认参数,不过可以用宏来模拟:

//---------------------------------------------------------------------------

#include
#define DEFAULT 40 /*默认参数值*/
#define FUN(A) fun(#A##"-") /*用于实现默认参数的宏*/

int f(int n) /*用于实验默认参数的函数*/
{
return printf("%d\n",n);
}
int fun(const char *a) /*确定函数调用的函数,返回值类型要和实际需要调用的f()函数返回值类型一致*/
{
int n; /*变量的类型要和f()函数参数的类型一样*/
if (a[0]=='-') n=DEFAULT;
else sscanf(a,"%d",&n);

return f(n);

}
int main(void)
{
FUN();
FUN(67);
return 0;
}
//---------------------------------------------------------------------------