我不确定之前是否有人问过,但我相信一定是这样。考虑问题开始的简单行:
int a ;
char b = reinterpret_cast<char> (a);
我理解reinterpret_cast
将 x 类型的位模式解释为 y 类型,因为它不应该由于大小不匹配而工作,实际上它没有。
现在考虑另一个代码:
int a ;
char b = static_cast<char> (a);
这行得通!. 现在我的问题是它如何工作?我的意思是编译器会砍掉这些位吗?. 我很确定sizeof(char) < sizeof(int)
。如果是这样,reinterpret_cast
也应该使用相同的技术吗?