在 C 运算符优先级的上下文中。实际上,以下代码将被评估如下:
int32_t * result = (int32_t *) addr_base + offset;
|
|
↓
int32_t * result = ((int32_t *) addr_base) + offset;
但是,我在下表中看到的是,cast应该+从右到左进行评估。换句话说,在我的例子+中是正确的cast,所以我希望上面的第一个语句将被这样评估:
int32_t * result = (int32_t *) (addr_base + offset);
就像+在右侧一样cast(根据表格,优先级更高)。
为什么会发生这种情况?
