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