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?
Il est défini par le standard C comme 0
pour réussir (les crédits vont au hvd).
Pour une plus grande portabilité, vous pouvez utiliser les macros
EXIT_SUCCESS
etEXIT_FAILURE
pour la valeur du statut conventionnel pour succès et échec, respectivement. Ils sont déclarés dans le fichierstdlib.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.
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())
{
...
}