Я бачив unsigned
пару разів цей "безтиповий" тип, але жодного разу не бачив пояснень. Я припускаю, що існує відповідний signed
тип. Ось приклад:
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;
}
Те, що я зібрав до цього часу:
- у моїй системі, sizeof(unsigned) = 4
(натякає на 32-розрядний непідписаний int)
- це може бути використано як скорочення для передачі іншого типу до непідписаної версії:
signed long int i = -42;
printf("%u\n", (unsigned)i);
Це ANSI C, чи просто розширення компілятора?
long
замістьlong int
є дуже поширеним, тому я не впевнений, чомуunsigned
замість цьогоunsigned int
не буде прийнятним.