
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
对于 int 类型的整数溢出不能用这个safemath去校验,目前主流的方法是判断结果是否大于0 ,小于0 证明回绕溢出了
var x int8 = 120;
var y int8 = 8;
var z = x + y;
println(z) // -128
本文探讨了在Solidity智能合约中,为何不能仅依赖`pure`函数的范围检查来防止整数溢出,通过实例展示了使用`require`进行溢出检查的重要性。重点介绍了如何正确处理`int`类型溢出,以及主流的通过结果正负判断来避免回绕溢出的方法。
952

被折叠的 条评论
为什么被折叠?



