最佳答案
我已经看到这种 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,还是仅仅是一个编译器扩展?