The short program attached shows a problem with scanf when the destination variable is an unsigned 32-bit integer %u or %lu.
If the value is over limit, scanf is supposed to return ULONG_MAX (0xFFFFFFFF), but what it actually seems to return
is X & 0xFFFFFFFF. Try entering 4294967297 and you should get X=1!
Interestingly, the 64-bit version %llu seems to work correctly, returning ULLONG_MAX.
I'm using RC8.00, 64-bit version under Win7 and making a 64-bit console program.