记一个符号优先级带来的坑
标签:c/c++
结论:
- 符号优先级表最容易被忽略,但是一旦有坑,都不是一时半会能发现的!
-
下面是一行关于将二维变一维的代码(
(img->width + 2 * IMG_SUBPIXEL_PAD_SIZE) * 4
表示第二维宽度大小)[原始]
Pic[y][x & 3]
[错误的修改]Pic[(y)*((img->width + 2 * IMG_SUBPIXEL_PAD_SIZE) * 4) + x & 3]
[正确的修改]Pic[(y)*((img->width + 2 * IMG_SUBPIXEL_PAD_SIZE) * 4) + (x & 3)]
+
号的优先级高于&
的优先级!!! -
给出部分的优先级表
[外链图片转存失败(img-HYHCdzKv-1562637675468)(http://7xl3j2.com1.z0.glb.clouddn.com/ccpp1.png)]位移、按位运算、逻辑运算的优先级都要比加减乘除的优先级更低!