Ho visto questo tipo "typeless" unsigned
usato un paio di volte, ma mai visto una spiegazione per questo. Suppongo che ci sia un corrispondente tipo signed
. Ecco un esempio:qual è il tipo di dati senza segno?
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
(accenna a un 32 bit unsigned int)
- potrebbe essere usato come una scorciatoia per lanciare un altro tipo alla versione unsigned:
signed long int i = -42;
printf("%u\n", (unsigned)i);
È questo ANSI C, o semplicemente un'estensione compilatore?
Sì. 'unsigned' è uguale a' unsigned int' ma ho eseguito una ricerca su _WG14/N1124 Draft del comitato - 6 maggio 2005 ISO/IEC 9899: TC2_ per 'unsigned' e non è stato possibile trovare dove è definito ... potresti citare la parte in cui è definita? – user454322