Ho visto questo unsigned
tipo "senza tipo" usato un paio di volte, ma non ho mai visto una spiegazione per questo. Suppongo che ci sia un signed
tipo corrispondente . Ecco un esempio:
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;
}
Quello che ho raccolto finora:
- sul mio sistema, sizeof(unsigned) = 4
(suggerisce un int senza segno a 32 bit)
- potrebbe essere usato come scorciatoia per lanciare un altro tipo nella versione non firmata:
signed long int i = -42;
printf("%u\n", (unsigned)i);
È ANSI C o solo un'estensione del compilatore?
long
invece dilong int
è molto comune quindi non sono sicuro del motivo per cuiunsigned
invece diunsigned int
non sarebbe accettabile.