retorno - Parámetros por defecto en C
paso por referencia en c++ (4)
¿Es posible establecer valores para los parámetros predeterminados en C? Por ejemplo:
void display(int a, int b=10){
//do something
}
main(){
display(1);
display(1,2); // override default value
}
Visual Studio 2008, se queja de que hay un error de sintaxis en la pantalla -void (int a, int b = 10). Si esto no es legal en C, ¿cuál es la alternativa? Por favor hagamelo saber. Gracias.
Los parámetros por defecto es una característica de C ++.
C no tiene parámetros por defecto.
No de esa manera...
Puede usar una matriz int o varargs y completar los datos faltantes dentro de su función. Sin embargo, se pierde el tiempo de compilación.
No es posible en el estándar C. Una alternativa es codificar los parámetros en el nombre de la función, como por ejemplo
void display(int a){
display_with_b(a, 10);
}
void display_with_b(int a, int b){
//do something
}
No hay parámetros por defecto en C.
Una forma de superar esto es pasar los punteros NULL y luego establecer los valores predeterminados si se pasa NULL. Esto es peligroso, así que no lo recomendaría a menos que realmente necesite parámetros predeterminados.
Ejemplo
function ( char *path)
{
FILE *outHandle;
if (path==NULL){
outHandle=fopen("DummyFile","w");
}else
{
outHandle=fopen(path,"w");
}
}