zoukankan      html  css  js  c++  java
  • 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

    运行结果

  • 相关阅读:
    lintcode:Flip Bits 将整数A转换为B
    lintcode:strStr 字符串查找
    lintcode:Subtree 子树
    lintcode 容易题:Partition Array by Odd and Even 奇偶分割数组
    lintcode:在二叉查找树中插入节点
    lintcode:在O(1)时间复杂度删除链表节点
    lintcode:哈希函数
    lintcode:合并排序数组 II
    lintcode:合并排序数组
    lintcode:数飞机
  • 原文地址:https://www.cnblogs.com/wangzefeng/p/5308875.html
Copyright © 2011-2022 走看看