On my processor, INT64_MAX + 1 will be INT64_MIN, a negative value. But the compiler is free to turn
for (int64_t i = 1; i > 0; i++) { f(i); }
On my processor, INT64_MAX + 1 will be INT64_MIN, a negative value. But the compiler is free to turn
into an infinite loop. Understanding how the computer works without reading about undefined behavior will make you fall into these kinds of traps.