pintos (6) --运算符优先级

时间:2023-01-11 17:21:05

一个定点小数除法如下:

#define FD_DIV(X, Y) (((fp_t)X)<<FD_SHIFT_AMOUNT/(Y))

然而这是错的……

错在哪里呢…左移 << 的优先级是低于除法 / 的
所以会先计算FD_SHIFT_AMOUNT/(Y)


#define FD_DIV(X, Y) ((((fp_t)X)<<FD_SHIFT_AMOUNT)/(Y))

加上括号就好了…对括号哲学的理解还是不够