我已经看过这种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;
}Run Code Online (Sandbox Code Playgroud)
到目前为止我收集的内容:
- 在我的系统上,sizeof(unsigned) = 4(提示32位无符号整数)
- 它可以用作将另一种类型转换为无符号版本的简写:
signed long int i = -42;
printf("%u\n", (unsigned)i);
Run Code Online (Sandbox Code Playgroud)
这是ANSI C,还是仅仅是编译器扩展?
Pol*_*878 30
unsigned手段unsigned int. signed手段signed int.使用just unsigned是一种unsigned int在C 中声明a的懒惰方式.是的,这是ANSI.
小智 13
历史上在C中,如果省略了数据类型"int"则假设.所以"unsigned"是"unsigned int"的简写.这已经被认为是很长时间的不良做法,但仍有相当数量的代码使用它.
在C中,unsigned是一个快捷方式unsigned int.
你有同样的,因为long它是一个快捷方式long int
并且也可以声明unsigned long(它将是a unsigned long int).
这是ANSI标准
小智 5
在 C 和 C++ 中
unsigned = unsigned int (Integer type)
signed = signed int (Integer type)
Run Code Online (Sandbox Code Playgroud)
包含 n 位的无符号整数可以具有介于 0 和 (2^n-1) 之间的值,即 2^n 个不同的值。
无符号整数是正数或零。
有符号整数使用 2 的补码存储在计算机中。
| 归档时间: |
|
| 查看次数: |
90533 次 |
| 最近记录: |