int main() { unsigned char a = 254; unsigned char b = 1; unsigned char c = 2; printf ("a = %hhu\n", a); printf ("b = %hhu\n", b); printf ("c = %hhu\n\n", c); if (uadd_ok (a, b)) { printf ("next addition will not overflow\n"); } else { printf ("next addition will overflow\n"); } printf ("%hhu+%hhu = %hhu\n\n", a, b, a+b); if (uadd_ok (a, c)) { printf ("next addition will not overflow\n"); } else { printf ("next addition will overflow\n"); } printf ("%hhu+%hhu = %hhu\n\n", a, c, a+c); return 0; }
int main() { int x1 = UINT_MAX - 100; int y1 = 200; int y2 = 10; printf("uadd_ok(UINT_MAX-100, 200) = %d\n", uadd_ok(UINT_MAX-100, 200)); printf("uadd_ok(UINT_MAX-100, 10 = %d\n", uadd_ok(UINT_MAX-100, 10)); return 0; }
void main() { int a = 3947483647; int b = 3929933123; if (uadd_ok(a, b)) printf("Add OK\n"); else printf("Add Overflow\n"); }
int main(){ unsigned a = 0xffffffff; unsigned b = 0xabcd0123; int ans = uadd_ok(a, b); // if overflow doesn't occur if(ans){ printf("overflow doesn't occur!\n"); } else{ printf("overflow occur!\n"); } }
//uadd_ok测试函数 void test_uadd_ok() { printf("call test_uadd_ok() \n"); unsigned x = 10u; unsigned y = 20u; unsigned ret = uadd_ok(x, y); printf("uadd_ok(%u, %u) ret %d \n", x, y, ret); x = 0xFFFFFFFFu; y = 0u; ret = uadd_ok(x, y); printf("uadd_ok(%u, %u) ret %d \n", x, y, ret); x = 0xFFFFFFFFu; y = 123u; ret = uadd_ok(x, y); printf("uadd_ok(%u, %u) ret %d \n", x, y, ret); printf("============================================================================\n"); }