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

Cpp*_*ter -3 c++

首先在C++,转换或转换中发生了什么?

(dword)header[2]<<8
Run Code Online (Sandbox Code Playgroud)

bol*_*lov 6

从这里运算符优先级,您可以看到bitwise shift优先级低于type cast.这相当于:

((dword) (header[2])) << 8
Run Code Online (Sandbox Code Playgroud)

始终使用括号来表示不清楚的事情,即使您检查它确实没问题,因为它可以提高代码的可读性.(你可能不想像我这样强调下标这里强调所有的优先级,但是使用另一个括号).