#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int max_int = 0-1;
printf("The max value of unsigned int on 32 machine: %u/n", max_int);
}
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int max_int = 0-1;
printf("The max value of unsigned int on 32 machine: %u/n", max_int);
}
[b]
gcc编译后:
[/b]int_sizeof1.c: 在函数‘main'中:
int_sizeof1.c:5: 警告:整数溢出
[b]运行后:
[/b]
The max value of int on 32 machine: 4294967295
[b]VC6.0和java编译后,无错误。
运行后:
[/b]The max value of int on 32 machine: 4294967295
#include <stdio.h>
int main(int argc, char *argv[])
{
int max_int = (1<<31)-1;
printf("The max value of int on 32 machine: %d/n", max_int);
}
[b]将其int写成有符号型的程序如下:
[/b]
#include <stdio.h>
int main(int argc, char *argv[])
{
int max_int = (1<<31)-1;
printf("The max value of int on 32 machine: %d/n", max_int);
}
[b]gcc编译后:
[/b]
int_sizeof1.c: 在函数‘main'中:
int_sizeof1.c:5: 警告:整数溢出
[b]运行后:
[/b]
The max value of int on 32 machine: 2147483647
VC6.0和java编译后,无错误。
[b]运行后:
[/b]
The max value of int on 32 machine: 2147483647
因为int的最高位是符号位。