NOTE:
算数运算符的优先级刚好比移位运算符高一个优先级。
== 和 != 的优先级比位操作符 & ^ | 高一个优先级。
. [ ] () 的优先级高于 * .
... ...
-----The C programming language 2ed, p48.
C语言的优先级真让人
,
在计算Y、U、V分量的buffer中当前像素点的偏移位置,uiScaleX和uiScaleY是计算色度分量的偏移时的收缩比例。
curOffset = ((yStartInPic+y)>>uiScaleY) * stride + (xStartInPic+x)>>uiScaleX;
按照上面的优先级,该语句等价为:
curOffset =( ((yStartInPic+y)>>uiScaleY) * stride + (xStartInPic+x) )>>uiScaleX;
正确的应该是:
curOffset = ((yStartInPic+y)>>uiScaleY) * stride + ((xStartInPic+x)>>uiScaleX);
指针p所指对象的成员a:
p->a, 或者 (*p).a
i = 1,2,3,4,5;
实际上由于 = 的优先级比逗号运算符的要高,上面的语句等价为:
(i=1),2,3,4,5;
总结:
表达式若涉及加减乘数之外的操作符,最好加上括号!!!