Alors, que signifie "return 0"?
Je suis assez compétent en PHP, mais j'ai commencé à barboter avec C. j'ai vu le code
return 0;
à la fin de fonctions qui ne renvoient une valeur. Ce n'est pas en PHP, parce que si une fonction est de ne pas disposer d'un retour, d'une valeur NULL est retourné automatiquement.
Tout ce que je demande est, dans un anglais simple, ce qui ne l' return 0
faire réellement? Il est comme le PHP, où il retourne son argument que la valeur de l'appel de la fonction? Est-il juste de la bonne pratique?
Je sais que cette question a été posée de nombreuses fois avant, mais je me demande à partir du point de vue d'un développeur PHP. Les réponses de google se lance n'ont pas été que concis.
source d'informationauteur Starkers
Vous devez vous connecter pour publier un commentaire.
Oui, PHP et bien d'autres langues emprunté le
return
mot-clé à partir de 'C'. Et dans toutes les langues, lereturn
mot a la même fonction - de retour de la fonction. Tout ce qui suitreturn
mot-clé est la valeur qui est renvoyée à l'appelant.Est-il une bonne pratique? Oui et Non. Pas toutes les fonctions devrait renvoyer une valeur. Et tout à fait quelques-uns dans la bibliothèque standard de même, de ne pas renvoyer de valeur. Par conséquent, leur type de retour est
void
.Mais
main
fonction doit retourner0
(égalementEXIT_SUCCESS
) pour indiquer que le programme a été exécutée avec succès. Et -1 sinon (égalementEXIT_FAILURE
)EDIT: (Merci à @KeithThompson):
EXIT_FAILURE
est définie par l'implémentation.1
est une valeur commune deEXIT_FAILURE
mais le point est, vous n'avez pas besoin de savoir.Pour des raisons historiques, il est possible d'écrire
return 0;
de retour d'une fonction qui a été déclarée commevoid
comme suit:Cela ne fait rien, et la
0
(ou ce que vous avez mis là) est jeté. Aussi, sensible compilateurs vous donnera un message d'avertissement si vous faites cela. Donc, ne pas faire cela.Des fonctions en C retour de type int par défaut, si aucun autre type de retour est définie. return 0 serait une bonne pratique pour vous assurer que la fonction renvoie une valeur connue, plutôt que d'une valeur aléatoire, dans le cas où l'appelant est en regardant la valeur de retour.
Il est littéralement en retournant un int de 0.
Le langage de programmation C permet à des programmes de quitter ou de retour de la fonction principale du signal de la réussite ou de l'échec, en retournant un entier, ou le retour de l'macros
EXIT_SUCCESS
etEXIT_FAILURE
. Sur Unix, ce sont égaux à 0 et 1 respectivement. Un programme C peut également utiliser leexit()
fonction en spécifiant le nombre entier d'état ou de sortie de la macro en tant que premier paramètre.Outre les macros
EXIT_SUCCESS
etEXIT_FAILURE
le C standard ne définit pas le sens de codes de retour. Règles pour l'utilisation des codes de retour varient sur différentes plates-formes.En C, vous n'avez pas à retourner une valeur uniquement si vous déclarez une fonction avec le vide au début.
Premier exemple:
Deuxième Exemple: