C 标准库 - <limits.h>

简介: 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> 中定义的常量的一个实例:

#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


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

相关文章
|
2月前
|
程序员 编译器
详解 C 标准库 - <limits.h>
`&lt;limits.h&gt;` 是 C 标准库中的头文件,定义了各种基本数据类型的大小限制和特性,如 `CHAR_BIT`、`CHAR_MIN`、`CHAR_MAX` 等,涵盖了整数和字符类型的极限值。它提供了关键的宏常量,帮助程序员理解变量范围,确保代码的正确性和可移植性。
|
1月前
|
安全
C 标准库 - <time.h>详解
`&lt;time.h&gt;` 是 C 标准库中的头文件,提供了与时间和日期相关的功能。它包括关键数据类型如 `time_t` 和 `struct tm`,常用宏如 `CLOCKS_PER_SEC`,以及函数如 `time()`、`difftime()`、`mktime()`、`localtime()`、`gmtime()`、`strftime()`、`asctime()`、`ctime()` 和 `clock()`。
94 13
|
2月前
|
存储 C语言 开发者
C标准库-time.h
`&lt;time.h&gt;` 是 C 语言标准库中的头文件,提供了处理日期和时间的功能。它定义了 `time_t`, `tm` 等类型及多种函数,如 `time()` 获取当前时间戳,`localtime()` 和 `gmtime()` 将时间戳转换为本地时间和 UTC 时间,`strftime()` 格式化时间,`mktime()` 将 `tm` 结构转换为时间戳,`nanosleep()` 暂停程序执行等。这些功能帮助开发者高效地进行时间相关的编程工作。
|
5月前
|
存储 C语言
C语言标准库介绍:<time.h>
C语言标准库介绍:<time.h>
|
6月前
|
存储
limits.h 头文件
limits.h 头文件。
105 1
|
6月前
|
安全 算法 编译器
【C++ 模板编程 条件编译】深入探索 C++ 的条件编译:从 std::enable_if 到 C++20 的新特性
【C++ 模板编程 条件编译】深入探索 C++ 的条件编译:从 std::enable_if 到 C++20 的新特性
222 0
|
6月前
std::numeric_limits
std::numeric_limits
41 0
|
6月前
|
JSON JavaScript 前端开发
Deno 的配置文件、框架,标准库
Deno 的配置文件、框架,标准库
|
算法 C++
你是真的“C”——实用memory类库函数的详细实现和使用
哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享你是真的“C”——各种实用memory类库函数的详细实现和使用。都是精华内容,可不要错过哟!!!😍😍😍
97 0
你是真的“C”——实用memory类库函数的详细实现和使用
|
安全 Ubuntu Shell
关于limits生效的四个案例
进程大量too many open file 的报错,修改/etc/security/limits.conf未生效
5347 0