use*_*265 35 c parameters default
是否可以在C中设置默认参数的值?例如:
void display(int a, int b=10){
//do something
}
main(){
display(1);
display(1,2); // override default value
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2008,抱怨-void显示语法错误(int a,int b = 10).如果这在C中不合法,那么替代方案是什么?请告诉我.谢谢.
Jon*_*oni 14
在标准C中是不可能的.一种替代方案是将参数编码到函数名中,例如
void display(int a){
display_with_b(a, 10);
}
void display_with_b(int a, int b){
//do something
}
Run Code Online (Sandbox Code Playgroud)
C中没有默认参数.
您可以通过这种方式获得的一种方法是传入NULL指针,然后在传递NULL时将值设置为默认值.这很危险,所以除非你真的需要默认参数,否则我不推荐它.
例
function ( char *path)
{
FILE *outHandle;
if (path==NULL){
outHandle=fopen("DummyFile","w");
}else
{
outHandle=fopen(path,"w");
}
}
Run Code Online (Sandbox Code Playgroud)