C 标准库 - <limits.h> 学习笔记
1. <limits.h> 概述
<limits.h> 是 C 标准库里的头文件,它包含了一些常量和类型定义,用来描述数据类型的取值范围等信息。这些信息是在编写可移植的、与平台无关的 C 代码时非常有用的。
2. 常量
<limits.h> 中定义了许多常用的常量,这里列出一些比较重要的常量:
- CHAR_BIT:表示一个 char 类型的比特数;
- SCHAR_MIN:表示 signed char 类型的最小值;
- SCHAR_MAX:表示 signed char 类型的最大值;
- UCHAR_MAX:表示 unsigned char 类型的最大值;
- SHRT_MIN:表示 short 类型的最小值;
- SHRT_MAX:表示 short 类型的最大值;
- USHRT_MAX:表示 unsigned short 类型的最大值;
- INT_MIN:表示 int 类型的最小值;
- INT_MAX:表示 int 类型的最大值;
- UINT_MAX:表示 unsigned int 类型的最大值;
- LONG_MIN:表示 long 类型的最小值;
- LONG_MAX:表示 long 类型的最大值;
- ULONG_MAX:表示 unsigned long 类型的最大值;
- LLONG_MIN:表示 long long 类型的最小值(C99 引入);
- LLONG_MAX:表示 long long 类型的最大值(C99 引入);
- ULLONG_MAX:表示 unsigned long long 类型的最大值(C99 引入)。
3. 实例
以下是一个简单的例子,展示了如何使用 <limits.h> 中的常量来计算数据类型的取值范围:
cCopy Code#include <stdio.h>
#include <limits.h>
int main(void)
{
printf("char: %d ~ %d\n", CHAR_MIN, CHAR_MAX);
printf("signed char: %d ~ %d\n", SCHAR_MIN, SCHAR_MAX);
printf("unsigned char: 0 ~ %u\n", UCHAR_MAX);
printf("short: %d ~ %d\n", SHRT_MIN, SHRT_MAX);
printf("unsigned short: 0 ~ %u\n", USHRT_MAX);
printf("int: %d ~ %d\n", INT_MIN, INT_MAX);
printf("unsigned int: 0 ~ %u\n", UINT_MAX);
printf("long: %ld ~ %ld\n", LONG_MIN, LONG_MAX);
printf("unsigned long: 0 ~ %lu\n", ULONG_MAX);
#ifdef __STDC_VERSION__
printf("long long: %lld ~ %lld\n", LLONG_MIN, LLONG_MAX);
printf("unsigned long long: 0 ~ %llu\n", ULLONG_MAX);
#endif
return 0;
}
输出结果:
Copy Codechar: -128 ~ 127
signed char: -128 ~ 127
unsigned char: 0 ~ 255
short: -32768 ~ 32767
unsigned short: 0 ~ 65535
int: -2147483648 ~ 2147483647
unsigned int: 0 ~ 4294967295
long: -9223372036854775808 ~ 9223372036854775807
unsigned long: 0 ~ 18446744073709551615
long long: -9223372036854775808 ~ 9223372036854775807
unsigned long long: 0 ~ 18446744073709551615
以上就是 <limits.h> 的简要介绍和示例,希望对你有帮助!