2

在我的 C++ 代码中,我有一个表达式,我将 unsigned long 整数乘以 int 以将结果分配给 unsigned long int。我收到“溢出返回值”的警告。我试图将 int 转换为 unsigned long 但它没有帮助。有什么建议么...

表情是这样的——

uint64_t size = 0;
uint64_t value = getvalue();
int pageSize= getPageSize();
size = value*(uint64_t)pageSize;
4

2 回答 2

0

以下应该做的工作:

size = value*(uint64_t)(unsigned int)pageSize;
于 2011-08-31T09:25:55.083 回答
0

您的工具可能有办法为这行代码设置异常。

如果该工具真的很聪明,这是唯一的方法,因为这里确实存在溢出的风险(因为int可能无法容纳2^64-1)。

于 2011-08-31T09:38:18.023 回答