Fonction avec parametres et return avec ou sans parentheses?

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....

google translate fait assez bien le job. Même si quelques fois la syntaxe est approximative le sens est là.

return est une instruction et les parenthèses sont optionnelles.
Pour retourner plusieurs valeurs on doit passer par une structures, un tableau, ...

C’est même plus qu’une instruction, c’est un des Jump statements, un des elements clé du langage

Statements - cppreference.com

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

Merci

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

La fonction loop() est une fonction comme une autre, tout comme setup. Pourquoi vous ne pourriez pas l’appeler ?

A l’endroit qui suit le point d’appel de cette fonction dans le code.

Prenez le temps de faire un tuto sur le C. Celui dopenclassroom est pas mal

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.