解决:warning C4293: “<<”: Shift 计数为负或过大,其行为未定义

清泛原创
__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数据。

warning C4293

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部