/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

EXIT_FAILURE

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
cigoba



Registrado: 27 Ago 2007
Mensajes: 39

MensajePublicado: 11/09/2007 12:10 pm
Título: EXIT_FAILURE

Gracias rir3760 por la respuesta anterior.

Ahora, volviendo al tema de la macro EXIT_FAILURE que tu comentaste, puedo reemplazar todos los "return -1" que aparece en los códigos C por "return EXIT_FAILURE;"?

Por ejemplo, en el siguiente bloque de código verifico si hay memoria suficiente -en la asignación dinámica de memoria- para una variable mediante malloc:
Código:

...
sp = malloc(n * sizeof *sp);
...
if (sp == NULL){
   fprintf(stderr, "malloc fallo!- Error en la asignacion de memoria\n");
   return -1;
}



Puedo, en todos estos casos, reemplazar "return -1 (o return 1);" por "return EXIT_FAILURE;"?.
Ahora: "return EXIT_FAILURE;" es equivalente a colocar "exit(EXIT_FAILURE);"?.


Si tu respuesta es afirmativa, mi conclusión final de este tema sería:

"return 0" ---> puede reemplazarse por "return EXIT_SUCCESS;" ---> Salida exitosa del programa.
"return -1" o "return 1" puede reemplazarse por "return EXIT_FAILURE;" ---> Salida del programa por un error (como el código de arriba).

De esta manera estoy reemplazando todos los 'número mágicos' por macros.

Desde ya muchas gracias.
_________________
esta es mi firma.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3657
Ubicación: Mexico

MensajePublicado: 11/09/2007 1:09 pm
Título: Re: EXIT_FAILURE

cigoba escribió:
puedo reemplazar todos los "return -1" que aparece en los códigos C por "return EXIT_FAILURE;"?

Si.

cigoba escribió:
Ahora: "return EXIT_FAILURE;" es equivalente a colocar "exit(EXIT_FAILURE);"?.

El uso de return o exit depende del codigo que se este ejecutando. Si este es el codigo de la funcion main entonces ambas sentencias:
Código:
return N;

/* ... */

exit(N);

Son equivalentes y producen el mismo resultado.

Si el codigo que se esta ejecutando esta en otra funcion que no sea main se debe forzosamente utilizar la funcion exit ya que utilizar return causaria solo la salida de la funcion pero no del programa.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com