d'ouverture du codebase Postgres, je vois qu'une grande partie du code C est écrit en ayant des pointeurs avec la notation -> de telle sorte que:C et notation pointeur
(foo)->next = 5;
Je sais que la notation de pointeur a les niveaux de préséance, tels que -> = (* foo). et n'est pas la même chose que * foo.
Cependant, cela signifie-t-il quelque chose lorsque les parenthèses sont en dehors du nom de la variable et décrivent l'adresse de next ou est-ce simplement une convention qui est endémique à un style de codage?
Génial, merci. C'est ce que je pensais, et je l'ai trouvé particulièrement étrange car il était partout dans le code. – mduvall
Pour développer cela, la raison pour laquelle vous utiliseriez cette construction est comme une ceinture de sécurité au cas où foo est une macro. C'est la même raison pour laquelle certains guides de style C (par exemple, FreeBSD) suggèrent que toutes les déclarations de retour soient de la forme return (x); au lieu de simplement renvoyer x; – Benno
Bien que si 'foo' était une macro, il serait sage de l'avoir entièrement entre parenthèses, par ex. '#define foo (blargity-> blah)' –