C语言,limits.h

如题,看一看limits.h中的关于数据类型的长度定义

头文件 limits.h

 1 //
 2 // limits.h
 3 //
 4 //      Copyright (c) Microsoft Corporation. All rights reserved.
 5 //
 6 // The C Standard Library <limits.h> header.
 7 //
 8 #pragma once
 9 #define _INC_LIMITS
10 
11 #include <vcruntime.h>
12 
13 _CRT_BEGIN_C_HEADER
14 
15 
16 
17 #define CHAR_BIT      8         // number of bits in a char
18 #define SCHAR_MIN   (-128)      // minimum signed char value
19 #define SCHAR_MAX     127       // maximum signed char value
20 #define UCHAR_MAX     0xff      // maximum unsigned char value
21 
22 #ifndef _CHAR_UNSIGNED
23     #define CHAR_MIN    SCHAR_MIN   // mimimum char value
24     #define CHAR_MAX    SCHAR_MAX   // maximum char value
25 #else
26     #define CHAR_MIN    0
27     #define CHAR_MAX    UCHAR_MAX
28 #endif
29 
30 #define MB_LEN_MAX    5             // max. # bytes in multibyte char
31 #define SHRT_MIN    (-32768)        // minimum (signed) short value
32 #define SHRT_MAX      32767         // maximum (signed) short value
33 #define USHRT_MAX     0xffff        // maximum unsigned short value
34 #define INT_MIN     (-2147483647 - 1) // minimum (signed) int value
35 #define INT_MAX       2147483647    // maximum (signed) int value
36 #define UINT_MAX      0xffffffff    // maximum unsigned int value
37 #define LONG_MIN    (-2147483647L - 1) // minimum (signed) long value
38 #define LONG_MAX      2147483647L   // maximum (signed) long value
39 #define ULONG_MAX     0xffffffffUL  // maximum unsigned long value
40 #define LLONG_MAX     9223372036854775807i64       // maximum signed long long int value
41 #define LLONG_MIN   (-9223372036854775807i64 - 1)  // minimum signed long long int value
42 #define ULLONG_MAX    0xffffffffffffffffui64       // maximum unsigned long long int value
43 
44 #define _I8_MIN     (-127i8 - 1)    // minimum signed 8 bit value
45 #define _I8_MAX       127i8         // maximum signed 8 bit value
46 #define _UI8_MAX      0xffui8       // maximum unsigned 8 bit value
47 
48 #define _I16_MIN    (-32767i16 - 1) // minimum signed 16 bit value
49 #define _I16_MAX      32767i16      // maximum signed 16 bit value
50 #define _UI16_MAX     0xffffui16    // maximum unsigned 16 bit value
51 
52 #define _I32_MIN    (-2147483647i32 - 1) // minimum signed 32 bit value
53 #define _I32_MAX      2147483647i32 // maximum signed 32 bit value
54 #define _UI32_MAX     0xffffffffui32 // maximum unsigned 32 bit value
55 
56 // minimum signed 64 bit value
57 #define _I64_MIN    (-9223372036854775807i64 - 1)
58 // maximum signed 64 bit value
59 #define _I64_MAX      9223372036854775807i64
60 // maximum unsigned 64 bit value
61 #define _UI64_MAX     0xffffffffffffffffui64
62 
63 #if _INTEGRAL_MAX_BITS >= 128
64     // minimum signed 128 bit value
65     #define _I128_MIN   (-170141183460469231731687303715884105727i128 - 1)
66     // maximum signed 128 bit value
67     #define _I128_MAX     170141183460469231731687303715884105727i128
68     // maximum unsigned 128 bit value
69     #define _UI128_MAX    0xffffffffffffffffffffffffffffffffui128
70 #endif
71 
72 #ifndef SIZE_MAX
73     #ifdef _WIN64
74         #define SIZE_MAX _UI64_MAX
75     #else
76         #define SIZE_MAX UINT_MAX
77     #endif
78 #endif
79 
80 #if __STDC_WANT_SECURE_LIB__
81     #ifndef RSIZE_MAX
82         #define RSIZE_MAX (SIZE_MAX >> 1)
83     #endif
84 #endif
85 
86 
87 
88 _CRT_END_C_HEADER
limits.h

我自己写的测试代码

 1 #include<stdio.h>
 2 #include <limits.h>
 3 
 4 void main(void)
 5 {
 6     printf("The bit number of char is 	%d
", CHAR_BIT);
 7     
 8     printf("The min number of char is 	%d
", CHAR_MIN);
 9     printf("The max number of char is 	%d
", CHAR_MAX);
10 
11     printf("The min number of schar is 	%d
", SCHAR_MIN);
12     printf("The max number of schar is 	%d
", SCHAR_MAX);
13 
14     printf("The max number of uchar is 	%d
", UCHAR_MAX);
15 
16     printf("max. # bytes in multibyte char 	%d
", MB_LEN_MAX);
17 
18     printf("minimum (signed) short value 	%d
", SHRT_MIN);
19     printf("maximum (signed) short value 	%d
", SHRT_MAX);
20 
21     printf("maximum unsigned short value 	%d
", USHRT_MAX);
22     printf("minimum (signed) int value 	%d
", SHRT_MIN);
23     printf("maximum (signed) int value 	%d
", INT_MAX);
24     printf("maximum unsigned int value 	%d
", UINT_MAX);
25     printf("minimum (signed) long value 	%d
", LONG_MIN);
26     printf("maximum (signed) long value 	%d
", SHRT_MIN);
27     printf("maximum unsigned long value 	%d
", ULONG_MAX);
28     printf("maximum signed long long int value 	%d
", LLONG_MAX);
29     printf("minimum signed long long int value 	%d
", LLONG_MIN);
30     printf("maximum unsigned long long int value 	%d
", ULLONG_MAX);
31 
32     printf("minimum signed 8 bit value 	%d
", _I8_MIN);
33     printf("maximum signed 8 bit value 	%d
", _I8_MAX);
34     printf("maximum unsigned 8 bit value 	%d
", _UI8_MAX);
35 
36     printf("minimum signed 16 bit value 	%d
", _I16_MIN);
37     printf("maximum signed 16 bit value 	%d
", _I16_MAX);
38     printf("maximum unsigned 16 bit value 	%d
", _UI16_MAX);
39 
40     printf("minimum signed 32 bit value 	%d
", _I32_MIN);
41     printf("maximum signed 32 bit value 	%d
", _I32_MAX);
42     printf("maximum unsigned 32 bit value 	%d
", _UI32_MAX);
43 }
TestLimit.c

运行结果

原文地址:https://www.cnblogs.com/wangzefeng/p/5308875.html