La apertura del código base Postgres, veo que gran parte del código C se escribe por tener punteros con el -> notación de tal manera que:C y el puntero notación
(foo)->next = 5;
sé que la notación puntero tiene niveles de precedencia, tales que -> = (* foo). y no es lo mismo que * foo.
Sin embargo, ¿significa algo cuando los paréntesis están fuera del nombre de la variable y desreferenciando la dirección del próximo o es simplemente una convención que es endémica para un estilo de codificación?
Impresionante, gracias. Eso es lo que pensé, y me pareció especialmente extraño ya que estaba en todas partes en la base de código. – mduvall
Para ampliarlo, la razón por la que usarías esta construcción es como un cinturón de seguridad en caso de que foo sea una macro. Es la misma razón por la que algunas guías de estilo de C (por ejemplo, FreeBSD) sugieren que todas las declaraciones de devolución tienen el formato return (x); en lugar de simplemente devolver x; – Benno
Aunque si 'foo' fuera una macro, sería aconsejable tenerlo entre paréntesis, p. '#define foo (blargity-> blah)' –