为什么我会收到此代码的警告?
switch(iInput)
{
...
case 1I64<<31: return 31; break;
...
}
1>C:\path-to-file.cpp(44) : 警告 C4309: 'case' : 常量值截断
1I64<<31 是 0x0000000080000000 (__int64) 所以这里没有截断, case 有最大值吗?
最佳答案
控制 switch
的表达式类型控制 case
标签将使用的表达式类型。
您需要在控制表达式中输入 __int64
(或等效的)类型以消除警告。
关于c++ - 为什么我会收到 1I64<<31 的警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5641805/