secundaria - tesis sobre aprendizaje cooperativo actualizado
¿Debo devolver 0 o 1 para una función exitosa? (3)
Posible duplicado:
Manejo de errores en código C
¿Qué valor de retorno debe utilizar para una llamada de función fallida en C?
Siempre uso 0, pero no es realmente legible en if
, while
, etc.
¿Debo devolver 1? ¿Por qué la función principal return 0
para el éxito?
Está definido por el estándar C como 0
para el éxito (los créditos van al hvd).
Para una mayor portabilidad, puede utilizar las macros
EXIT_SUCCESS
yEXIT_FAILURE
para el valor de estado convencional para el éxito y el fracaso, respectivamente. Están declarados en el archivostdlib.h
.
(Estoy hablando del valor devuelto al sistema operativo desde las llamadas principales , de salida o similares)
En cuanto a su función, devuelva lo que desea y hace que el código sea más legible, siempre y cuando lo mantenga así a lo largo de sus programas.
La razón por la cual el uso main
0 para el éxito es que se usa como el código de salida de la aplicación al sistema operativo, donde 0 generalmente significa éxito y 1 (o más alto) significa falla. (Por supuesto, siempre debe usar las macros predefinidas EXIT_SUCCESS
y EXIT_FAILURE
).
Sin embargo, dentro de una aplicación, es más natural usar cero para fallas y no cero para tener éxito, ya que el valor de retorno se puede usar directamente en un if
como en:
if (my_func())
{
...
}
Si está devolviendo un estado booleano, podría escribir un int
y usarlo. Esto hace que el tipo de retorno de sus funciones sea obvio y usted (y otros) no tendrán que verificar si devuelve 0 o 1 para siempre .
typedef int BOOL;
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
BOOL myfunc()
{
...
return TRUE;
}