#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); }
gcc編譯后: int_sizeof1.c: 在函數‘main'中: int_sizeof1.c:5: 警告:整數溢出 運行后: The max value of int on 32 machine: 4294967295
VC6.0和java編譯后,無錯誤。 運行后: 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); }
gcc編譯后: int_sizeof1.c: 在函數‘main'中: int_sizeof1.c:5: 警告:整數溢出 運行后: The max value of int on 32 machine: 2147483647 VC6.0和java編譯后,無錯誤。 運行后: The max value of int on 32 machine: 2147483647 因為int的最高位是符號位。