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