82 votes

Parenthèses entourant les valeurs de retour

Très souvent, dans le code C ANSI, je vois une parenthèse entourant une valeur de retour unique.

Comme ça:-

 int foo(int x) {
  if (x)
    return (-1);
  else
    return (0);
}
 

Pourquoi utiliser () autour de la valeur de retour dans ces cas? Des idées? Je ne vois aucune raison pour cela.

60voto

Adam Haile Points 12576

Il n'y a vraiment aucune raison ... c'est juste une vieille convention.

Pour gagner de la place, les programmeurs effectuent souvent le calcul final dans la ligne de retour au lieu de la faire sur sa propre ligne et veillent à ce que les parens soient le plus souvent disponibles, afin de faciliter la vérification du fait qu'il s'agit d'une seule instruction renvoyée, comme ceci:

 return (x+i*2);
 

au lieu de

 int y = x+i*2;
return y;
 

La parenthèse est devenue une habitude et cela a collé.

55voto

user10392 Points 756

Un motif pratique, mais peu probable, est que si vous mettez des parenthèses autour de la valeur, vous pouvez définir le retour sous forme de macro, puis insérer un code de journalisation pour surveiller tous vos retours.

23voto

Kristopher Johnson Points 34554

Mon style personnel consiste à utiliser des parenthèses s’il existe une expression complexe; par exemple,

 return (a + b);
 

mais de ne pas les utiliser si l'expression est un terme simple

 return a;
 

Je ne peux pas dire pourquoi je le fais de cette façon; juste quelque chose que j'ai ramassé il y a longtemps.

À propos, je pense que cela ressemble à un appel de fonction, comme ceci:

 return(a);  // ugh
 

est incroyablement moche et juste faux.

13voto

James Antill Points 1676

Il ya quelques raisons:

  1. si/si/pour/etc. sont tous les mots clés qui doivent avoir des parens. Donc, souvent, il semble naturel de toujours les mettre sur le retour aussi.

  2. sizeof est le seul autre mot-clé qui peut, ou non, sauf que dans certains cas, vous devez utiliser des parenthèses. Il est donc plus facile de prendre l'habitude de toujours utiliser les parenthèses. pour sizeof, ce qui implique une logique d': si vous le pouvez, toujours le faire.

  3. cas/goto sont les seuls mots-clés lorsque vous n'utilisez jamais des parens. ... et les gens ont tendance à penser à ceux que des cas particuliers (et comme eux à la fois de se démarquer des autres mots-clés, esp. goto).

8voto

Quand je retourne -1 comme dans votre exemple, je pense que c'est plus lisible avec la parenthèse car le signe moins est plus visible:

 return 1
 

ou

 return -1
 

ou

 return (-1)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X