重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言中没有参数默认值的概念,但其实可以利用宏来模拟参数默认值;
成都创新互联公司主营瑞安网站建设的网络公司,主营网站建设方案,app软件定制开发,瑞安h5小程序开发搭建,瑞安网站营销推广欢迎瑞安等地区企业咨询
我们之前介绍过可变参数宏与逗号运算符,将两者相结合的话可以定义出以下形式的宏:
示例:
输出:
C语言不支持默认参数,不过可以用宏来模拟:
//---------------------------------------------------------------------------
#include stdio.h
#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;
}
//---------------------------------------------------------------------------
可以这样调用。
int b=0指的是默认参数,调用时传入或不传入b都行,如果不传入b的话,那么b的值就是0。
另外注意只有最后面的参数可以是默认参数。