L
lovecreatesbeauty
why does printf get -1 for an unsigned integer?
#include <stdio.h>
int main(void)
{
unsigned int u = 0;
u--;
if (u < 0)
printf("u < 0\n");
else
printf("u >= 0\n");
printf("u: %d\n", u);
return 0;
}
$ cc a.c
$ ./a.out
u >= 0
u: -1
$
#include <stdio.h>
int main(void)
{
unsigned int u = 0;
u--;
if (u < 0)
printf("u < 0\n");
else
printf("u >= 0\n");
printf("u: %d\n", u);
return 0;
}
$ cc a.c
$ ./a.out
u >= 0
u: -1
$