先发生什么,铸造或移位[C ++]

时间:2014-04-16 09:59:39

标签: c++

首先在C ++,转移或投射中发生了什么?

(dword)header[2]<<8

1 个答案:

答案 0 :(得分:6)

从这里Operator precedence,您可以看到bitwise shift的优先级低于type cast。所以这相当于:

((dword) (header[2])) << 8

总是使用括号表示不清楚的内容,即使您检查它确实没问题,因为它可以提高代码的可读性。 (你可能不想像我这样强调下标,以强调所有优先级,但使用其他括号)。