【发布时间】:2021-08-17 06:39:04
【问题描述】:
我已经看到这种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,还是只是一个编译器扩展?
【问题讨论】: