先上参考链接:
c++ - shift count overflow when doing 1<<40 - Stack Overflow
描述基本与我编译出的警告一致,直接看解决方法:
只是这个是常数的,我的是这样子的:
ret = (data[7] | (data[6] << 8) | (data[5] << 16) | (data[4] << 24) | (data[3] << 32) | (data[2] << 40) | (data[1] << 48) | (data[0] << 56));
ret是一个unsigned long long int类型,这样执行赋值,结果没问题,但是会出标题的警告,根据上面的参考链接,这边稍作修改,如下,即解决:
ret = (data[7]) | ((u64)(data[6] << 8)) | ((data[5] << 16)) | ((data[4] <&