Я видел этот тип unsigned
"typeless", который использовался пару раз, но никогда не видел объяснений. Я предполагаю, что существует соответствующий тип 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 или просто расширением компилятора?