A função printf
toma um tipo de argumento, como %d
ou %i
para um signed int
. No entanto, eu não'não vejo nada para um valor long
.
Coloque um `l' (letra L em letras minúsculas) diretamente antes do especificador.
unsigned long n;
long m;
printf("%lu %ld", n, m);
Acho que queres dizer:
unsigned long n;
printf("%lu", n); // unsigned long
ou
long n;
printf("%ld", n); // signed long