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

来源:清泛原创     2017-03-06 09:54:31    人气:     我有话说( 0 人参与)

__int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime;出现编译警告: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

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: