Я видел, как этот 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было бы неприемлемо.