web-dev-qa-db-fra.com

Dois-je retourner 0 ou 1 pour une fonction réussie?

Duplicate possible:
Traitement des erreurs en code C
Quelle valeur de retour devriez-vous utiliser pour un appel de fonction ayant échoué en C?

J'utilise toujours 0, mais ce n'est pas vraiment lisible dans if, while, etc.

Dois-je retourner 1? Pourquoi la fonction principale return 0 pour le succes?

48
ziq

Il est défini par le standard C comme 0 pour réussir (les crédits vont au hvd).

Mais

Pour une plus grande portabilité, vous pouvez utiliser les macros EXIT_SUCCESS et EXIT_FAILURE pour la valeur du statut conventionnel pour succès et échec, respectivement. Ils sont déclarés dans le fichier stdlib.h.

(Je parle de la valeur renvoyée au système d'exploitation par main , exit ou appels similaires)

Pour ce qui est de votre fonction, restituez ce que vous souhaitez et améliorez la lisibilité du code, à condition de le conserver ainsi dans vos programmes.

45
m0skit0

La raison pour laquelle main utilise 0 en tant que succès est qu’il est utilisé comme code de sortie de l’application sur le système d’exploitation, où 0 signifie généralement succès et 1 (ou plus) signifie échec. (Bien sûr, vous devriez toujours utiliser les macros prédéfinies EXIT_SUCCESS et EXIT_FAILURE.)

Dans une application, cependant, il est plus naturel d'utiliser zéro pour échec et non nul pour succès, car la valeur de retour peut directement être utilisée dans un if comme dans:

if (my_func())
{
  ...
}
15
Lindydancer