Bonjour
En résumé , "return" permet de renvoyer la valeur que l'on vient de calculer dans une fonction.
Si on ne met pas "return" la fonction ne renvoie rien et le traitement se pousuit jusqu'à la fin de la fonction.
Si on met "return" elle renvoie quelque chose et arrête son traitement dés qu'on y passe.
Si plusieurs "return" sont mis c'est comme s'il y avait plusieurs portes de sortie en début du couloir et que logiciel prenait la première sortie par laquelle il passe lors de son exécution. S'il ne passe par aucune de ces portes de sortie, il est quitte à s'éxécuter jusqu'à la dernière porte de sortie qui correspond à sa fin.
Un return permet de renvoyer un code d'erreur.
Bien faire attention :
-au type calculé dans la fonction puis au type renvoyé qui est converti.
(Cf mon exemple)
-à ne pas oublier le return si on veut renvoyer une valeur.
-la portée des variables, si la variable est globale on n'a pas besoin de passer par une fonction pour renvoyer la valeur mais c'est moins propre.
Eviter systématiquement de mettre une variable globale permet de limiter leur visibilité, dans des logiciels plus conséquent, une fonction ne verra pas la variable qui n'est pas globale à tout le programme elle sera en partie protégée sauf gros problème du logiciel.
=> Mais c'est une notion plus avancée pour une utilisation dans un second temps si on considère un
très petit logiciel amateur arduino.
Quand le logiciel est plus important avec de nombreux fichiers cette notion est indispensable.
=> Pour aller plus loin encore, il faut savoir qu'une
fonction ne peut pas renvoyer n'importe quoi via son "return", si la variable est encombrante on passe par un pointeur. Mais si on considère un logiciel amateur arduino débutant il pourra se contenter de renvoyer une variable simple par exemple un "char".
-une fonction se rapproche d'une procédure ou sous programme pour rester neutre sans connation liée à d'autres languages.
La fonction renvoie quelque chose alors que la procédure ne renvoie rien.
void procedure_loikshfiqdflskh( char X, unsigned char Y) // on repèrera "void" qui ne laisse aucun doute.
int fonction_sukdgfvcqkezsjd( char Z, int W)
cdlt lion10