是否可以在C中设置默认参数的值?例如:
void display(int a, int b=10){
//do something
}
main(){
display(1);
display(1,2); // override default value
}
Visual Studio 2008,抱怨-void显示语法错误(int a,int b = 10)。如果这在C中不合法,那么替代方案是什么?请告诉我。感谢。
答案 0 :(得分:49)
默认参数是C ++功能。
C没有默认参数。
答案 1 :(得分:13)
在标准C中是不可能的。一种替代方法是将参数编码为函数名称,例如
void display(int a){
display_with_b(a, 10);
}
void display_with_b(int a, int b){
//do something
}
答案 2 :(得分:5)
C中没有默认参数。
这样做的一种方法是传入NULL指针,然后在传递NULL时将值设置为默认值。这很危险,所以除非你真的需要默认参数,否则我不推荐它。
实施例
function ( char *path)
{
FILE *outHandle;
if (path==NULL){
outHandle=fopen("DummyFile","w");
}else
{
outHandle=fopen(path,"w");
}
}
答案 3 :(得分:2)
不那样......
您可以使用int数组或varargs并填写函数中缺少的数据。但是你会丢失编译时检查。
答案 4 :(得分:-1)
我的坏。遮篷非常错误。已删除。