在编译没有错误的reMail项目后,警告之一是:
remail-iphone/sqlite3/sqlite3.c:18703:15: 有符号移位结果 (0x1F0000000) 需要 34 位来表示,但 'int' 只有 32 位
即(0x1f<<28)
在以下代码中:
if (!(a&0x80))
{
a &= (0x1f<<28)|(0x7f<<14)|(0x7f);
b &= (0x7f<<14)|(0x7f);
b = b<<7;
a |= b;
s = s>>11;
*v = ((u64)s)<<32 | a;
return 7;
}
为 iOS(32 位)消除此警告的正确方法是什么?