Otwarcie codebase PostgreSQL, widzę, że znaczna część kod C jest napisane przez posiadające wskaźniki z -> notacji w taki sposób, że:C i wskaźnik notacja
(foo)->next = 5;
wiem, że notacja wskaźnik ma poziomy pierwszeństwa, takie, że -> = (* foo). i nie jest taki sam jak * foo.
Czy jednak oznacza to coś, gdy nawiasy znajdują się poza nazwą zmiennej i odsyłają adres następnego lub jest to tylko konwencja, która jest endemiczna dla stylu kodowania?
Niesamowite, dzięki. Tak właśnie myślałem i okazało się to szczególnie dziwne, ponieważ było wszędzie w bazie kodu. – mduvall
Aby się na nim rozwinąć, powód, dla którego użyjesz tej konstrukcji, jest jak pasem bezpieczeństwa, na wypadek, gdyby foo było makro. Z tego samego powodu niektóre przewodniki w stylu C (na przykład FreeBSD) sugerują, że wszystkie zwrotne instrukcje mają formę return (x); zamiast tylko zwracać x; – Benno
Chociaż jeśli 'foo' był makro, dobrze byłoby mieć go w pełni nawiasowany, np. '#define foo (blargity-> blah)' –