C和指针表示法

mdu*_*all 5 c pointers

打开Postgres代码库,我看到很多C代码是通过使用 - >表示法指针编写的,其方式如下:

(foo)->next = 5;
Run Code Online (Sandbox Code Playgroud)

我知道指针符号具有优先级,例如 - > =(*foo).并且与*foo不同.

但是,当括号在变量名之外并且取消引用next的地址或者它只是编码风格特有的约定时,它是否意味着什么?

abe*_*nky 6

它是我以前从未见过的编码约定.

但它没有改变任何东西.

(foo)->next = 5;
Run Code Online (Sandbox Code Playgroud)

完全等同于

foo->next = 5;
Run Code Online (Sandbox Code Playgroud)