C 标准库 - <limits.h>
C 标准库 - <limits.h>
简介
<limits.h> 是 C 标准库中的一个头文件,定义了各种数据类型的限制。这些宏提供了有关整数类型(char、short、int、long 和 long long 等)和其他数据类型的最大值和最小值的信息。
这些限制指定了变量不能存储任何超出这些限制的值,例如一个无符号可以存储的最大值是 255。
库宏
下面的值是特定实现的,且是通过 #define 指令来定义的,这些值都不得低于下边所给出的值。
| 宏 | 描述 | 值 | 
|---|---|---|
| 字符类型 | ||
| CHAR_BIT | char类型的位数 | 通常为 8 | 
| CHAR_MIN | char类型的最小值(有符号或无符号) | -128 或 0 | 
| CHAR_MAX | char类型的最大值(有符号或无符号) | 127 或 255 | 
| SCHAR_MIN | signed char类型的最小值 | -128 | 
| SCHAR_MAX | signed char类型的最大值 | 127 | 
| UCHAR_MAX | unsigned char类型的最大值 | 255 | 
| 短整数类型 | ||
| SHRT_MIN | short类型的最小值 | -32768 | 
| SHRT_MAX | short类型的最大值 | 32767 | 
| USHRT_MAX | unsigned short类型的最大值 | 65535 | 
| 整数类型 | ||
| INT_MIN | int类型的最小值 | -2147483648 | 
| INT_MAX | int类型的最大值 | 2147483647 | 
| UINT_MAX | unsigned int类型的最大值 | 4294967295 | 
| 长整数类型 | ||
| LONG_MIN | long类型的最小值 | -9223372036854775808L | 
| LONG_MAX | long类型的最大值 | 9223372036854775807L | 
| ULONG_MAX | unsigned long类型的最大值 | 18446744073709551615UL | 
| 长长整数类型 | ||
| LLONG_MIN | long long类型的最小值 | -9223372036854775808LL | 
| LLONG_MAX | long long类型的最大值 | 9223372036854775807LL | 
| ULLONG_MAX | unsigned long long类型的最大值 | 18446744073709551615ULL | 
实例
下面的实例演示了 limit.h 文件中定义的一些常量的使用。
#include <stdio.h>
#include <limits.h>
int main() {
    printf("Character types:\n");
    printf("CHAR_BIT: %d\n", CHAR_BIT);
    printf("CHAR_MIN: %d\n", CHAR_MIN);
    printf("CHAR_MAX: %d\n", CHAR_MAX);
    printf("SCHAR_MIN: %d\n", SCHAR_MIN);
    printf("SCHAR_MAX: %d\n", SCHAR_MAX);
    printf("UCHAR_MAX: %u\n", UCHAR_MAX);
    printf("\nShort integer types:\n");
    printf("SHRT_MIN: %d\n", SHRT_MIN);
    printf("SHRT_MAX: %d\n", SHRT_MAX);
    printf("USHRT_MAX: %u\n", USHRT_MAX);
    printf("\nInteger types:\n");
    printf("INT_MIN: %d\n", INT_MIN);
    printf("INT_MAX: %d\n", INT_MAX);
    printf("UINT_MAX: %u\n", UINT_MAX);
    printf("\nLong integer types:\n");
    printf("LONG_MIN: %ld\n", LONG_MIN);
    printf("LONG_MAX: %ld\n", LONG_MAX);
    printf("ULONG_MAX: %lu\n", ULONG_MAX);
    printf("\nLong long integer types:\n");
    printf("LLONG_MIN: %lld\n", LLONG_MIN);
    printf("LLONG_MAX: %lld\n", LLONG_MAX);
    printf("ULLONG_MAX: %llu\n", ULLONG_MAX);
    return 0;
}
让我们编译和运行上面的程序,这将产生下列结果:
Character types:
CHAR_BIT: 8
CHAR_MIN: -128
CHAR_MAX: 127
SCHAR_MIN: -128
SCHAR_MAX: 127
UCHAR_MAX: 255
Short integer types:
SHRT_MIN: -32768
SHRT_MAX: 32767
USHRT_MAX: 65535
Integer types:
INT_MIN: -2147483648
INT_MAX: 2147483647
UINT_MAX: 4294967295
Long integer types:
LONG_MIN: -9223372036854775808
LONG_MAX: 9223372036854775807
ULONG_MAX: 18446744073709551615
Long long integer types:
LLONG_MIN: -9223372036854775808
LLONG_MAX: 9223372036854775807
ULLONG_MAX: 18446744073709551615
<limits.h> 提供了许多与整数类型相关的宏,用于描述各种数据类型的限制。这些宏对于编写健壮和移植性强的代码非常有用,因为它们允许程序员在不同平台上轻松获取数据类型的限制值。
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号