zen*_*hoy 7 c c++ integer-overflow
在阅读这个问题的评论时,我遇到了一个指向comp.lang.c常见问题的链接,该链接显示了一个"小心添加功能",据称可以检测到整数溢出:
int
chkadd(int a, int b)
{
if (INT_MAX - b < a) {
fputs("int overflow\n", stderr);
return INT_MAX;
}
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
如果这不会溢出怎么样b == -1?如果假设是a并且b都是积极的,为什么要制造它们int而不是unsigned int首先?