bonjour,
return var1; ou return (var1); fait la meme chose ?
return var1+var2; et return (var1+var2); aussi
alors que j'ai lu dans un tuto syntaxe interdite ?
çà dépend de la date du tuto et de la version gcc, C, C++ utilisée ?
par contre dans les variables/constantes envoyées en parametres on doit changer le "nom"
je viens de voir qu'il y a moyen de retourner plusieurs valeurs d'une fonction avec des "pointeurs"
comme c'était en anglais chinois pour moi, je n'ai pas approfondi
bete exemple avec plusieurs sortes de syntaxe return
int a;
int b;
int som;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
a=5;
b=7;
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(result(a,b)); // print som en appellant fonction result ?
a++;
delay(2000); // toutes les 2 secondes on incremente a de 1 et print le nouveau "som"
}
// fonction
int result(int c, int d) { // je ne peux pas mettre a et b !!!!
/*som = (c+d); //ou som=c+d;
return som; // resultat identique que return(som);
*/ //ok
//return c+d; // ok
return(c+d); // ok
}
return est une instruction, alors que return(); est un appel de fonction ?
Merci de m'indiquer si je fabule....
je vais de decouverte en decouverte : la syntaxe d'appel d'une fonction vide peut s'écrire avec ou sans parentheses
écrire
fonction1; egal fonction1();
on peut meme appel loop(); dans une fonction, le compilateur accepte sans warning
par contre un return; dans une fonction retourne où ?
loop() {
bla
bla
fonction1(); qui contient un return; vide
le retour se fait au début de loop ou aux instructions qui viennent apres l'appel de la fonction1 ou au debut de fonction1 jusque trouvé un break ou une condition de sortie ?
avec un goto label; on sait où on va.....
désolé si ces interrogations sont triviales
Non… sans les parenthèses vous n’appelez pas la fonction, vous faites juste référence au pointeur sur la fonction, donc à moins de faire une affectation par exemple, ça ne faut rien et ce sera viré par l’optimiseur à la compilation