如何解释运算符的结合性?
How to interpret the operator associativity?
括号和指针符号优先级相同,从左到右处理。为什么下面的代码会尝试从skb
中获取成员nfct
,然后进行类型转换?好像结合律是从右到左的。
(struct nf_conn *) skb->nfct
我认为您在这里遗漏的一点是 Operator Precedence。
指针成员访问运算符 (->
) 的优先级高于强制转换。
详细说明,(借用的措辞)
- 运算符优先级确定在具有多个不同优先级的运算符的表达式中首先执行哪个运算符。
- 当 相同优先级 的两个运算符出现在表达式中时,将使用(或发挥作用)结合性。
括号和指针符号优先级相同,从左到右处理。为什么下面的代码会尝试从skb
中获取成员nfct
,然后进行类型转换?好像结合律是从右到左的。
(struct nf_conn *) skb->nfct
我认为您在这里遗漏的一点是 Operator Precedence。
指针成员访问运算符 (->
) 的优先级高于强制转换。
详细说明,(借用的措辞)
- 运算符优先级确定在具有多个不同优先级的运算符的表达式中首先执行哪个运算符。
- 当 相同优先级 的两个运算符出现在表达式中时,将使用(或发挥作用)结合性。