出现编译警告:warning C4293: “<<”: Shift 计数为负或过大,其行为未定义。
解决:
不能移位32位或是负数,强制转换为64bit即可,将待移位数据强制转换,如下:
__int64 a = (__int64)time1.dwHighDateTime << 32 | time1.dwLowDateTime;
注:使用long long代替__int64也可,long long数据是C99标准,为64bit数据。
解决:warning C4293: “<<”: Shift 计数为负或过大,其行为未定义
来源:清泛原创 2017-03-06 09:54:31 人气: 我有话说( 0 人参与)
__int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime;出现编译警告:warning C4293: <<: Shift 计数为负或过大,其...
不能移位32位或是负数,强制转换为64bit即可,将待移位数据强制转换,如下:
__int64 a = (__int64)time1.dwHighDateTime << 32 | time1.dwLowDateTime;
注:使用long long代替__int64也可,long long数据是C99标准,为64bit数据。
上一篇:C/C++获取Windows的CPU、内存、硬盘使用率
下一篇:c/c++ volatile和mutable关键字