C 标准库 - <limits.h>

在C语言编程中,<limits.h> 头文件扮演着关键角色,它为各种基本数据类型定义了最小和最大限制。通过使用这些预定义的宏,程序员可以确保程序代码不会尝试存储超出特定类型范围的值。

简介

<limits.h> 头文件包含了关于不同类型(如 charintlong)变量属性的定义。这些宏限定了一系列变量类型的取值范围,从而避免因数值溢出引发的问题。

库宏详解

下面列举了一些 limits.h 中的关键宏及其含义:

  • CHAR_BIT: 定义了一个字节所包含的比特数(通常为 8)

  • SCHAR_MIN: 定义有符号字符类型的最小值(通常为 -128)

  • SCHAR_MAX: 定义有符号字符类型的最大值(通常为 127)

  • UCHAR_MAX: 定义无符号字符类型的最大值(通常为 255)

  • CHAR_MIN: 类型 char 的最小值,若 char 表示负数则等于 SCHAR_MIN,否则为 0

  • CHAR_MAX: 类型 char 的最大值,若 char 表示负数则等于 SCHAR_MAX,否则等于 UCHAR_MAX

  • MB_LEN_MAX: 定义多字节字符中的最大字节数

  • SHRT_MIN: 短整型(short int)的最小值(通常为 -32768)

  • SHRT_MAX: 短整型的最大值(通常为 +32767)

  • USHRT_MAX: 无符号短整型(unsigned short int)的最大值(通常为 65535)

  • INT_MIN: 整型(int)的最小值(通常为 -2147483648)

  • INT_MAX: 整型的最大值(通常为 2147483647)

  • UINT_MAX: 无符号整型(unsigned int)的最大值(通常为 4294967295)

  • LONG_MIN: 长整型(long int)的最小值(通常为 -9223372036854775808)

  • LONG_MAX: 长整型的最大值(通常为 9223372036854775807)

  • ULONG_MAX: 无符号长整型(unsigned long int)的最大值(通常为 18446744073709551615 或写成 1.8446744e+19)

示例

以下是使用 <limits.h> 中定义的常量的一个实例:

c 复制代码
#include <stdio.h>
#include <limits.h>

int main()
{
   printf("The number of bits in a byte %d\n", CHAR_BIT);
   printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);
   printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);
   printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);

   printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);
   printf("The maximum value of SHORT INT = %d\n", SHRT_MAX);

   printf("The minimum value of INT = %d\n", INT_MIN);
   printf("The maximum value of INT = %d\n", INT_MAX);

   printf("The minimum value of CHAR = %d\n", CHAR_MIN);
   printf("The maximum value of CHAR = %d\n", CHAR_MAX);

   printf("The minimum value of LONG = %ld\n", LONG_MIN);
   printf("The maximum value of LONG = %ld\n", LONG_MAX);

   return 0;
}

当编译并运行上述程序时,将输出以下结果:

复制代码
The number of bits in a byte 8
The minimum value of SIGNED CHAR = -128
The maximum value of SIGNED CHAR = 127
The maximum value of UNSIGNED CHAR = 255
The minimum value of SHORT INT = -32768
The maximum value of SHORT INT = 32767
The minimum value of INT = -2147483648
The maximum value of INT = 2147483647
The minimum value of CHAR = -128
The maximum value of CHAR = 127
The minimum value of LONG = -9223372036854775808
The maximum value of LONG = 9223372036854775807

通过这种方式,开发者能够确切地了解其开发环境中不同数据类型的大小和范围限制,以确保编写出健壮且高效的代码。

相关推荐
薇茗1 分钟前
【初阶数据结构】 升沉有序的平仄 排序 3
c语言·开发语言·数据结构·算法·排序算法·文件归并排序
字节高级特工3 分钟前
C++11(一) 革新:右值引用与移动语义
java·开发语言·c++·人工智能·后端
孬甭_3 分钟前
双向链表详解
c语言·数据结构·链表
薇茗3 分钟前
【初阶数据结构】 升沉有序的平仄 排序 2
c语言·数据结构·算法·排序算法·快排精讲
安生生申5 分钟前
uni-app 连接 JDY-31 蓝牙串口模块实践
c语言·前端·javascript·stm32·单片机·嵌入式硬件·uni-app
AI科技星8 分钟前
强哥德巴赫猜想(1+1)终极证明(2026 年5月 21 日)
开发语言·人工智能·算法·计算机视觉·量子计算
人道领域8 分钟前
【LeetCode刷题日记】654.最大二叉树:递归算法详解
java·算法·leetcode
番茄灭世神11 分钟前
Vscode开发/调试ARM单片机最新教程
c语言·arm开发·vscode·stm32·嵌入式·gd32
Controller-Inversion12 分钟前
105. 从前序与中序遍历序列构造二叉树
数据结构·算法
故事和你9113 分钟前
洛谷-【图论2-4】连通性问题2
开发语言·数据结构·c++·算法·动态规划·图论