Signed integer overflow is undefined
Në shqip: Tejmbushja e numrave me shenjë
ShpjegimiSQ
Në C, tejmbushja e një int me shenjë është sjellje e papërcaktuar — kompajleri mund të supozojë që s'ndodh kurrë dhe ta „optimizojë“ kontrollin tënd. Tejmbushja e unsigned është e përcaktuar: rrotullohet.
EnglishEN
In C, overflowing a signed int is undefined behaviour — the compiler may assume it never happens and “optimise away” your check. Unsigned overflow is defined: it wraps around.
Si ta mendosh
Si kur dikush supozon që s'do të bjerë kurrë shi dhe e heq çatinë.
Lexoje në anglisht
Like someone assuming it'll never rain and removing the roof.
Shembull kodic
int x = INT_MAX;
x + 1; // ✗ e papërcaktuar
unsigned u = UINT_MAX;
u + 1; // ✓ bëhet 0