C语言中的默认参数
是否可以在C中设置默认参数的值?例如:C语言中的默认参数,c,parameters,default,C,Parameters,Default,是否可以在C中设置默认参数的值?例如: void display(int a, int b=10){ //do something } main(){ display(1); display(1,2); // override default value } VisualStudio2008,投诉无效显示中存在语法错误(intA,intB=10)。如果这在C语言中是不合法的,那么还有什么选择呢?请让我知道。谢谢。C中没有默认参数 一种方法是传入NULL指针,然后在传入NULL时将值设
void display(int a, int b=10){
//do something
}
main(){
display(1);
display(1,2); // override default value
}
VisualStudio2008,投诉无效显示中存在语法错误(intA,intB=10)。如果这在C语言中是不合法的,那么还有什么选择呢?请让我知道。谢谢。C中没有默认参数 一种方法是传入NULL指针,然后在传入NULL时将值设置为默认值。但这很危险,所以我不建议使用它,除非您确实需要默认参数 范例
function ( char *path)
{
FILE *outHandle;
if (path==NULL){
outHandle=fopen("DummyFile","w");
}else
{
outHandle=fopen(path,"w");
}
}
这在标准C中是不可能的。一种替代方法是将参数编码到函数名中,例如
void display(int a){
display_with_b(a, 10);
}
void display_with_b(int a, int b){
//do something
}
默认参数是C++特性。 C没有默认参数。
不是这样您可以使用int数组或varargs来填充函数中缺少的数据。不过,您会丢失编译时检查。事实上,这在C语言中是不合法的。C语言也没有重载。可能重复:可能重复+1。我也喜欢评论中的做法,其中函数的名称包括它所使用的参数的数量。