1.打印标准头文件中的相应值
1 #include <stdio.h>
2 #include <limits.h>
3 main()
4 {
5 /* signed types */
6
7 printf("signed char min = %d\n", SCHAR_MIN);
8 printf("signed char max = %d\n", SCHAR_MAX);
9 printf("signed short min = %d\n", SHRT_MIN);
10 printf("signed short max = %d\n", SHRT_MAX);
11 printf("signed int min = %d\n", INT_MIN);
12 printf("signed int max = %d\n", INT_MAX);
13 printf("signed long min = %d\n", LONG_MIN);
14 printf("signed long max = %d\n", LONG_MAX);
15
16 /*unsigned types*/
17 printf("unsigned char max = %d\n", UCHAR_MAX);
18 printf("unsigned short max = %d\n", USHRT_MAX);
19 printf("unsigned int max = %d\n", UINT_MAX);
20 printf("unsigned long max = %d\n", ULONG_MAX);
21
22 return 0;
23 }
输出:

2.直接计算方式
1 #include <stdio.h>
2 /*determine ranges of types*/
3
4 main()
5 {
6 /* signed ranges of types*/
7
8 printf(" signed char min = %d \n", -(char)((unsigned char) ~0 >> 1));
9
10 printf(" signed char max = %d \n", (char)((unsigned char) ~0 >> 1));
11
12 printf(" signed short min = %d \n", -(short)((unsigned short) ~0 >> 1));
13
14 printf(" signed short max = %d \n", (short)((unsigned short) ~0 >> 1));
15
16 printf(" signed int min = %d \n", -(int)((unsigned int) ~0 >> 1));
17
18 printf(" signed int max = %d \n", (int)((unsigned int) ~0 >> 1));
19
20 printf(" signed long min = %d \n", -(long)((unsigned long) ~0 >> 1));
21
22 printf(" signed long max = %d \n", (long)((unsigned long) ~0 >> 1));
23
24
25 /*unsigned types*/
26
27 printf(" unsigned char max = %d \n",(unsigned char) ~0);
28
29 printf(" unsigned int max = %d \n",(unsigned int) ~0);
30
31 printf(" unsigned short max = %d \n",(unsigned short) ~0);
32
33 printf(" unsigned long max = %d \n",(unsigned long) ~0);
34
35
36 return 0;
37 }
输出:

浙公网安备 33010602011771号