解决:warning C4293: “<<”: Shift 计数为负或过大,其行为未定义
清泛原创
__int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime;
出现编译警告:warning C4293: “<<”: Shift 计数为负或过大,其行为未定义。
解决:
出现编译警告: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关键字