一个定点小数除法如下:
#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))
加上括号就好了…对括号哲学的理解还是不够
一个定点小数除法如下:
#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))
加上括号就好了…对括号哲学的理解还是不够