【发布时间】:2020-07-05 23:39:53
【问题描述】:
在 C 中,a.b 通常是 (&a)->b 的同义词。
即使a 是一些杂乱复合词的宏,在所有情况下都是这样吗?或者在任何版本的 C 中是否存在等价不成立的边缘情况?
【问题讨论】:
-
您可能打算询问
(a).b和(&(a))->b。否则,a很容易成为一个表达式/宏,这样优先级会干扰运算符。 -
等价是这样的:符号
p->m是(*p).m的简写。基本等价不涉及&;这是您可以从中得出的东西,但失去了一般性:与&的派生等价在&不可接受的情况下不成立。
标签: c pointers language-lawyer