我见过这种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。