He visto este unsigned
tipo "sin tipo" usado un par de veces, pero nunca vi una explicación para ello. Supongo que hay un signed
tipo correspondiente . He aquí un ejemplo:
static unsigned long next = 1;
/* RAND_MAX assumed to be 32767 */
int myrand(void) {
next = next * 1103515245 + 12345;
return((unsigned)(next/65536) % 32768);
}
void mysrand(unsigned seed) {
next = seed;
}
Lo que he recopilado hasta ahora:
- en mi sistema, sizeof(unsigned) = 4
(insinúa un int sin firmar de 32 bits)
- podría usarse como una forma abreviada para lanzar otro tipo a la versión sin firmar:
signed long int i = -42;
printf("%u\n", (unsigned)i);
¿Es ANSI C o simplemente una extensión del compilador?
long
en lugar delong int
es muy común, por lo que no estoy seguro de por qué enunsigned
lugar deunsigned int
no sería aceptable.