My doubts grow when I do this test

Code:
unsigned long l = (1<<31);
error ( str_for_int ( NULL, l ) );
printf ( "% d", l );



and I can read -2147... in both cases.

I'd hope that the problem comes from the transformation to a string but I can't be sure. I had some troubles with unsigned in the past. Can I trust that the compiler does the work as it is spected?

Thanks for your time!

Last edited by txesmi; 03/13/15 10:34.