- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 标准库 - 快速指南
C 库 - <assert.h>
C 标准库的assert.h头文件提供了一个名为assert的宏,可用于验证程序做出的假设,并在该假设为假时打印诊断消息。
定义的宏assert引用了另一个宏NDEBUG,该宏不属于<assert.h>。如果在包含<assert.h>的位置,在源文件中将NDEBUG定义为宏名称,则assert宏定义如下:
#define assert(ignore) ((void)0)
库宏
以下是头文件assert.h中定义的唯一函数:
序号 | 函数及描述 |
---|---|
1 |
void assert(int expression)
这实际上是一个宏,而不是函数,可用于在C程序中添加诊断信息。 |
C 库 - <ctype.h>
C 标准库的ctype.h头文件声明了几个用于测试和映射字符的有用函数。
所有函数都接受int作为参数,其值必须为EOF或可表示为无符号字符。
如果参数c满足所述条件,则所有函数都返回非零值(true),否则返回零(false)。
库函数
以下是头文件ctype.h中定义的函数:
序号 | 函数及描述 |
---|---|
1 |
int isalnum(int c)
此函数检查传递的字符是否为字母数字字符。 |
2 |
int isalpha(int c)
此函数检查传递的字符是否为字母字符。 |
3 |
int iscntrl(int c)
此函数检查传递的字符是否为控制字符。 |
4 |
int isdigit(int c)
此函数检查传递的字符是否为十进制数字。 |
5 |
int isgraph(int c)
此函数检查传递的字符是否使用区域设置具有图形表示形式。 |
6 |
int islower(int c)
此函数检查传递的字符是否为小写字母。 |
7 |
int isprint(int c)
此函数检查传递的字符是否可打印。 |
8 |
int ispunct(int c)
此函数检查传递的字符是否为标点符号字符。 |
9 |
int isspace(int c)
此函数检查传递的字符是否为空格字符。 |
10 |
int isupper(int c)
此函数检查传递的字符是否为大写字母。 |
11 |
int isxdigit(int c)
此函数检查传递的字符是否为十六进制数字。 |
该库还包含两个转换函数,它们接受并返回“int”。
序号 | 函数及描述 |
---|---|
1 |
int tolower(int c)
此函数将大写字母转换为小写字母。 |
2 |
int toupper(int c)
此函数将小写字母转换为大写字母。 |
字符类
序号 | 字符类及描述 |
---|---|
1 |
数字 这是一组整数 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }。 |
2 |
十六进制数字 这是一组 { 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f }。 |
3 |
小写字母 这是一组小写字母 { a b c d e f g h i j k l m n o p q r s t u v w x y z }。 |
4 |
大写字母 这是一组大写字母 {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }。 |
5 |
字母 这是一组小写和大写字母。 |
6 |
字母数字字符 这是一组数字、小写字母和大写字母。 |
7 |
标点符号字符 这是一组 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
8 |
图形字符 这是一组字母数字字符和标点符号字符。 |
9 |
空格字符 这是一组制表符、换行符、垂直制表符、换页符、回车符和空格。 |
10 |
可打印字符 这是一组字母数字字符、标点符号字符和空格字符。 |
11 |
控制字符 在ASCII中,这些字符的八进制代码为000到037,以及177(DEL)。 |
12 |
空白字符 这些是空格和制表符。 |
13 |
字母字符 这是一组小写字母和大写字母。 |
C 库 - <errno.h>
C 标准库的errno.h头文件定义了整数变量errno,该变量由系统调用和某些库函数在发生错误时设置,以指示发生了什么错误。此宏扩展为类型为int的可修改左值,因此程序可以读取和修改它。
errno在程序启动时设置为零。标准C库的某些函数将其值修改为非零,以指示某些类型的错误。您也可以根据需要修改其值或将其重置为零。
errno.h头文件还定义了一个指示不同错误代码的宏列表,这些宏将扩展为类型为int的整数常量表达式。
库宏
以下是头文件errno.h中定义的宏:
序号 | 宏及描述 |
---|---|
1 |
extern int errno
这是由系统调用和某些库函数在发生错误时设置的宏,以指示发生了什么错误。 |
2 |
EDOM 域错误
此宏表示域错误,如果输入参数超出数学函数定义的域,则会发生此错误,并且errno设置为EDOM。 |
3 |
ERANGE 范围错误
此宏表示范围错误,如果输入参数超出数学函数定义的范围,则会发生此错误,并且errno设置为ERANGE。 |
C 库 - <float.h>
C 标准库的float.h头文件包含一组与浮点值相关的各种平台相关的常量。这些常量由ANSI C提出。它们允许创建更可移植的程序。在检查所有常量之前,最好了解浮点数由以下四个元素组成:
序号 | 组件及组件描述 |
---|---|
1 |
S 符号(+/-) |
2 |
b 指数表示的基数或基数,二进制为2,十进制为10,十六进制为16,依此类推... |
3 |
e 指数,介于最小emin和最大emax之间的整数。 |
4 |
p 精度,有效数字中基数b的位数。 |
基于以上4个组件,浮点数的值如下:
floating-point = ( S ) p x be or floating-point = (+/-) precision x baseexponent
库宏
以下值是特定于实现的,并使用#define指令定义,但这些值可能不会低于此处给出的值。请注意,在所有情况下,FLT指的是类型float,DBL指的是double,而LDBL指的是long double。
序号 | 宏及描述 |
---|---|
1 | FLT_ROUNDS 定义浮点加法的舍入模式,它可以具有以下任何值:
|
2 | FLT_RADIX 2 这定义了指数的基数表示。基数2为二进制,基数10为正常的十进制表示,基数16为十六进制。 |
3 | FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG 这些宏定义了数字中的位数(以FLT_RADIX为基数)。 |
4 | FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10 这些宏定义了在舍入后无需更改即可表示的最大十进制数字(基数10)数。 |
5 | FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP 这些宏定义了以FLT_RADIX为基数的指数的最小负整数。 |
6 | FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37 这些宏定义了以10为基数的指数的最小负整数。 |
7 | FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP 这些宏定义了以FLT_RADIX为基数的指数的最大整数。 |
8 | FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37 这些宏定义了以10为基数的指数的最大整数。 |
9 | FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37 这些宏定义了最大有限浮点值。 |
10 | FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 这些宏定义了可表示的最小有效数字。 |
11 | FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 这些宏定义了最小浮点值。 |
示例
以下示例显示了float.h文件中定义的一些常量的用法。
实时演示#include <stdio.h> #include <float.h> int main () { printf("The maximum value of float = %.10e\n", FLT_MAX); printf("The minimum value of float = %.10e\n", FLT_MIN); printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG); }
让我们编译并运行上述程序,它将产生以下结果:
The maximum value of float = 3.4028234664e+38 The minimum value of float = 1.1754943508e-38 The number of digits in the number = 7.2996655210e-312
C 库 - <limits.h>
limits.h头文件确定各种变量类型的各种属性。此头文件中定义的宏限制了各种变量类型的值,例如char、int和long。
这些限制指定变量不能存储超出这些限制的任何值,例如,无符号字符最多可以存储255的最大值。
库宏
以下值是特定于实现的,并使用#define指令定义,但这些值可能不会低于此处给出的值。
宏 | 值 | 描述 |
---|---|---|
CHAR_BIT | 8 | 定义一个字节中的位数。 |
SCHAR_MIN | -128 | 定义有符号char的最小值。 |
SCHAR_MAX | +127 | 定义有符号char的最大值。 |
UCHAR_MAX | 255 | 定义无符号char的最大值。 |
CHAR_MIN | -128 | 定义字符类型char的最小值,如果char表示负值,则其值将等于SCHAR_MIN,否则为零。 |
CHAR_MAX | +127 | 定义字符类型char的值,如果char表示负值,则其值将等于SCHAR_MAX,否则为UCHAR_MAX。 |
MB_LEN_MAX | 16 | 定义多字节字符中的最大字节数。 |
SHRT_MIN | -32768 | 定义短整型short int的最小值。 |
SHRT_MAX | +32767 | 定义短整型short int的最大值。 |
USHRT_MAX | 65535 | 定义无符号短整型unsigned short int的最大值。 |
INT_MIN | -2147483648 | 定义整型int的最小值。 |
INT_MAX | +2147483647 | 定义整型int的最大值。 |
UINT_MAX | 4294967295 | 定义无符号整型unsigned int的最大值。 |
LONG_MIN | -9223372036854775808 | 定义长整型long int的最小值。 |
LONG_MAX | +9223372036854775807 | 定义长整型long int的最大值。 |
ULONG_MAX | 18446744073709551615 | 定义无符号长整型unsigned long int的最大值。 |
示例
以下示例显示了在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 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
C 库 - <locale.h>
locale.h头文件定义了特定于位置的设置,例如日期格式和货币符号。您会发现定义了几个宏以及一个重要的结构struct lconv和下面列出的两个重要函数。
库宏
以下是头文件中定义的宏,这些宏将在下面列出的两个函数中使用:
序号 | 宏及描述 |
---|---|
1 |
LC_ALL 设置所有内容。 |
2 |
LC_COLLATE 影响strcoll和strxfrm函数。 |
3 |
LC_CTYPE 影响所有字符函数。 |
4 |
LC_MONETARY 影响localeconv函数提供的货币信息。 |
5 |
LC_NUMERIC 影响小数点格式以及localeconv函数提供的信息。 |
6 |
LC_TIME 影响strftime函数。 |
库函数
以下是头文件locale.h中定义的函数:
序号 | 函数及描述 |
---|---|
1 |
char *setlocale(int category, const char *locale)
设置或读取依赖于位置的信息。 |
2 |
struct lconv *localeconv(void)
设置或读取依赖于位置的信息。 |
库结构
typedef struct { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; } lconv
以下是每个字段的描述:
序号 | 字段 & 描述 |
---|---|
1 |
decimal_point 用于非货币值的十进制点字符。 |
2 |
thousands_sep 用于非货币值的千位分隔符字符。 |
3 |
grouping 一个字符串,指示非货币数量中每组数字的大小。每个字符表示一个整数值,表示当前组中的数字个数。值为0表示后续组使用前一个值。 |
4 |
int_curr_symbol 它是使用的国际货币符号的字符串。前三个字符是ISO 4217:1987指定的字符,第四个字符是将货币符号与货币数量分隔开的字符。 |
5 |
currency_symbol 本地使用的货币符号。 |
6 |
mon_decimal_point 用于货币值的十进制点字符。 |
7 |
mon_thousands_sep 用于货币值的千位分隔符字符。 |
8 |
mon_grouping 一个字符串,其元素定义货币值中数字分组的大小。每个字符表示一个整数值,表示当前组中的数字个数。值为0表示后续组使用前一个值。 |
9 |
positive_sign 用于正货币值的字符。 |
10 |
negative_sign 用于负货币值的字符。 |
11 |
int_frac_digits 在国际货币值中显示小数点后数字的个数。 |
12 |
frac_digits 在货币值中显示小数点后数字的个数。 |
13 |
p_cs_precedes 如果等于1,则货币符号出现在正货币值之前。如果等于0,则货币符号出现在正货币值之后。 |
14 |
p_sep_by_space 如果等于1,则货币符号与正货币值之间用空格分隔。如果等于0,则货币符号与正货币值之间没有空格。 |
15 |
n_cs_precedes 如果等于1,则货币符号出现在负货币值之前。如果等于0,则货币符号出现在负货币值之后。 |
16 |
n_sep_by_space 如果等于1,则货币符号与负货币值之间用空格分隔。如果等于0,则货币符号与负货币值之间没有空格。 |
17 |
p_sign_posn 表示正货币值中正号的位置。 |
18 |
n_sign_posn 表示负货币值中负号的位置。 |
以下值用于p_sign_posn和n_sign_posn:
值 | 描述 |
---|---|
0 | 括号包含值和货币符号。 |
1 | 符号出现在值和货币符号之前。 |
2 | 符号出现在值和货币符号之后。 |
3 | 符号紧接在值和货币符号之前。 |
4 | 符号紧接在值和货币符号之后。 |
C 库 - <math.h>
math.h头文件定义了各种数学函数和一个宏。此库中提供的全部函数都将double作为参数并返回double作为结果。
库宏
此库中只定义了一个宏:
序号 | 宏及描述 |
---|---|
1 |
HUGE_VAL 如果函数的结果可能无法表示为浮点数,则使用此宏。如果正确结果的大小太大而无法表示,则函数将errno设置为ERANGE以指示范围错误,并返回一个特定的、非常大的值,该值由宏HUGE_VAL或其负值(-HUGE_VAL)命名。 如果结果的大小太小,则返回零值。在这种情况下,errno可能会或可能不会设置为ERANGE。 |
库函数
以下是头文件math.h中定义的函数:
序号 | 函数及描述 |
---|---|
1 |
double acos(double x)
返回x的反余弦值(以弧度为单位)。 |
2 |
double asin(double x)
返回x的反正弦值(以弧度为单位)。 |
3 |
double atan(double x)
返回x的反正切值(以弧度为单位)。 |
4 |
double atan2(double y, double x)
根据两个值的符号返回y/x的反正切值(以弧度为单位),以确定正确的象限。 |
5 |
double cos(double x)
返回弧度角x的余弦值。 |
6 |
double cosh(double x)
返回x的双曲余弦值。 |
7 |
double sin(double x)
返回弧度角x的正弦值。 |
8 |
double sinh(double x)
返回x的双曲正弦值。 |
9 |
double tanh(double x)
返回x的双曲正切值。 |
10 |
double exp(double x)
返回e的x次幂。 |
11 |
double frexp(double x, int *exponent)
返回值为尾数,exponent指向的整数为指数。结果值为x = 尾数 * 2 ^ 指数。 |
12 |
double ldexp(double x, int exponent)
返回x乘以2的指数次幂。 |
13 |
double log(double x)
返回x的自然对数(以e为底的对数)。 |
14 |
double log10(double x)
返回x的常用对数(以10为底的对数)。 |
15 |
double modf(double x, double *integer)
返回值为小数部分(小数点后的部分),并将integer设置为整数部分。 |
16 |
double pow(double x, double y)
返回x的y次幂。 |
17 |
double sqrt(double x)
返回x的平方根。 |
18 |
double ceil(double x)
返回大于或等于x的最小整数值。 |
19 |
double fabs(double x)
返回x的绝对值。 |
20 |
double floor(double x)
返回小于或等于x的最大整数值。 |
21 |
double fmod(double x, double y)
返回x除以y的余数。 |
C 库 - <setjmp.h>
setjmp.h头文件定义了宏setjmp()、一个函数longjmp()和一个变量类型jmp_buf,用于绕过正常的函数调用和返回机制。
库变量
以下是头文件setjmp.h中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
jmp_buf 这是一种数组类型,用于保存宏setjmp()和函数longjmp()的信息。 |
库宏
此库中只定义了一个宏:
序号 | 宏及描述 |
---|---|
1 |
int setjmp(jmp_buf environment)
此宏将当前的environment保存到变量environment中,以便以后由函数longjmp()使用。如果此宏直接从宏调用返回,则返回零,但如果它从longjmp()函数调用返回,则返回非零值。 |
库函数
以下是头文件setjmp.h中定义的唯一一个函数:
序号 | 函数及描述 |
---|---|
1 |
void longjmp(jmp_buf environment, int value)
此函数恢复由程序相同调用中最近一次调用setjmp()宏时保存的环境,并使用相应的jmp_buf参数。 |
C 库 - <signal.h>
signal.h头文件定义了一个变量类型sig_atomic_t、两个函数调用和几个宏,用于处理程序执行期间报告的不同信号。
库变量
以下是头文件signal.h中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
sig_atomic_t 它是int类型,用作信号处理程序中的变量。这是一种整数类型对象,即使在异步信号存在的情况下,也可以将其作为原子实体访问。 |
库宏
以下是头文件signal.h中定义的宏,这些宏将在下面列出的两个函数中使用。SIG_宏与signal函数一起使用以定义信号函数。
序号 | 宏及描述 |
---|---|
1 |
SIG_DFL 默认信号处理程序。 |
2 |
SIG_ERR 表示信号错误。 |
3 |
SIG_IGN 忽略信号。 |
SIG宏用于在以下条件下表示信号编号:
序号 | 宏及描述 |
---|---|
1 |
SIGABRT 程序异常终止。 |
2 |
SIGFPE 浮点错误,例如除以零。 |
3 |
SIGILL 非法操作。 |
4 |
SIGINT 中断信号,例如ctrl-C。 |
5 |
SIGSEGV 无效的存储器访问,例如段错误。 |
6 |
SIGTERM 终止请求。 |
库函数
以下是头文件signal.h中定义的函数:
序号 | 函数及描述 |
---|---|
1 |
void (*signal(int sig, void (*func)(int)))(int)
此函数设置一个函数来处理信号,即信号处理程序。 |
2 |
int raise(int sig)
此函数导致生成信号sig。sig参数与SIG宏兼容。 |
C 库 - <stdarg.h>
stdarg.h 头文件定义了一个变量类型va_list 和三个宏,这些宏可用于在函数中获取参数,当参数数量未知时,即可变数量的参数。
可变参数的函数在参数列表的末尾用省略号(,...)定义。
库变量
以下是 stdarg.h 头文件中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
va_list 这是一种适合保存三个宏va_start()、va_arg() 和 va_end() 所需信息的数据类型。 |
库宏
以下是 stdarg.h 头文件中定义的宏:
序号 | 宏及描述 |
---|---|
1 |
void va_start(va_list ap, last_arg)
此宏初始化ap 变量,以便与va_arg 和 va_end 宏一起使用。last_arg 是传递给函数的最后一个已知的固定参数,即省略号之前的参数。 |
2 |
type va_arg(va_list ap, type)
此宏检索函数参数列表中的下一个参数,其类型为type。 |
3 |
void va_end(va_list ap)
此宏允许使用va_start 宏的可变参数函数返回。如果在从函数返回之前没有调用va_end,则结果未定义。 |
C 库 - <stddef.h>
stddef.h 头文件定义了各种变量类型和宏。许多这些定义也出现在其他头文件中。
库变量
以下是 stddef.h 头文件中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
ptrdiff_t 这是一个有符号整数类型,是两个指针相减的结果。 |
2 |
size_t 这是一个无符号整数类型,是sizeof 关键字的结果。 |
3 |
wchar_t 这是一个整数类型,大小与宽字符常量相同。 |
库宏
以下是 stddef.h 头文件中定义的宏:
序号 | 宏及描述 |
---|---|
1 |
NULL
此宏是空指针常量的值。 |
2 |
offsetof(type, member-designator)
这将产生一个类型为 size_t 的常数整数,表示结构成员从结构开头处的偏移量(以字节为单位)。成员由member-designator 给出,结构名称在type 中给出。 |
C 库 - <stdio.h>
stdio.h 头文件定义了三个变量类型、几个宏和各种用于执行输入和输出的函数。
库变量
以下是 stdio.h 头文件中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
size_t 这是一个无符号整数类型,是sizeof 关键字的结果。 |
2 |
FILE 这是一种适合存储文件流信息的类对象类型。 |
3 |
fpos_t 这是一种适合存储文件中的任何位置的类对象类型。 |
库宏
以下是 stdio.h 头文件中定义的宏:
序号 | 宏及描述 |
---|---|
1 |
NULL 此宏是空指针常量的值。 |
2 |
_IOFBF、_IOLBF 和 _IONBF 这些宏展开为具有不同值的整型常量表达式,适合用作setvbuf 函数的第三个参数。 |
3 |
BUFSIZ 此宏是一个整数,表示setbuf 函数使用的缓冲区大小。 |
4 |
EOF 此宏是一个负整数,表示已到达文件末尾。 |
5 |
FOPEN_MAX 此宏是一个整数,表示系统可以保证同时打开的文件的最大数量。 |
6 |
FILENAME_MAX 此宏是一个整数,表示适合保存最长可能的文件名字符数组的最长长度。如果实现没有施加限制,则此值应为建议的最大值。 |
7 |
L_tmpnam 此宏是一个整数,表示适合保存tmpnam 函数创建的最长可能的临时文件名字符数组的最长长度。 |
8 |
SEEK_CUR、SEEK_END 和 SEEK_SET 这些宏用于fseek 函数,以定位文件中的不同位置。 |
9 |
TMP_MAX 此宏是tmpnam 函数可以生成的唯一文件名的最大数量。 |
10 |
stderr、stdin 和 stdout 这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。 |
库函数
以下是 stdio.h 头文件中定义的函数:
C 库 - <stdlib.h>
stdlib.h 头文件定义了四个变量类型、几个宏和各种用于执行通用功能的函数。
库变量
以下是 stdlib.h 头文件中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
size_t 这是一个无符号整数类型,是sizeof 关键字的结果。 |
2 |
wchar_t 这是一个整数类型,大小与宽字符常量相同。 |
3 |
div_t 这是div 函数返回的结构。 |
4 |
ldiv_t 这是ldiv 函数返回的结构。 |
库宏
以下是 stdlib.h 头文件中定义的宏:
序号 | 宏及描述 |
---|---|
1 |
NULL 此宏是空指针常量的值。 |
2 |
EXIT_FAILURE 这是 exit 函数在失败时返回的值。 |
3 |
EXIT_SUCCESS 这是 exit 函数在成功时返回的值。 |
4 |
RAND_MAX 此宏是 rand 函数返回的最大值。 |
5 |
MB_CUR_MAX 此宏是多字节字符集中字节的最大数量,不能大于 MB_LEN_MAX。 |
库函数
以下是 stlib.h 头文件中定义的函数:
C 库 - <string.h>
string.h头文件定义了一种变量类型、一个宏和各种用于操作字符数组的函数。
库变量
以下是string.h头文件中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
size_t 这是一个无符号整数类型,是sizeof 关键字的结果。 |
库宏
以下是string.h头文件中定义的宏:
序号 | 宏及描述 |
---|---|
1 |
NULL 此宏是空指针常量的值。 |
库函数
以下是string.h头文件中定义的函数:
C 库 - <time.h>
time.h头文件定义了四种变量类型、两个宏和各种用于操作日期和时间的函数。
库变量
以下是time.h头文件中定义的变量类型:
序号 | 变量 & 描述 |
---|---|
1 |
size_t 这是一个无符号整数类型,是sizeof 关键字的结果。 |
2 |
clock_t 这是一种适合存储处理器时间的类型。 |
3 |
time_t是 这是一种适合存储日历时间的类型。 |
4 |
struct tm 这是一种用于保存时间和日期的结构。 |
tm结构具有以下定义:
struct tm { int tm_sec; /* seconds, range 0 to 59 */ int tm_min; /* minutes, range 0 to 59 */ int tm_hour; /* hours, range 0 to 23 */ int tm_mday; /* day of the month, range 1 to 31 */ int tm_mon; /* month, range 0 to 11 */ int tm_year; /* The number of years since 1900 */ int tm_wday; /* day of the week, range 0 to 6 */ int tm_yday; /* day in the year, range 0 to 365 */ int tm_isdst; /* daylight saving time */ };
库宏
以下是time.h头文件中定义的宏:
序号 | 宏及描述 |
---|---|
1 |
NULL 此宏是空指针常量的值。 |
2 |
CLOCKS_PER_SEC 此宏表示每秒的处理器时钟数。 |
库函数
以下是time.h头文件中定义的函数:
序号 | 函数及描述 |
---|---|
1 |
char *asctime(const struct tm *timeptr)
返回一个指向字符串的指针,该字符串表示结构timeptr的日期和时间。 |
2 |
clock_t clock(void)
返回自实现定义的纪元(通常是程序的开始)开始以来使用的处理器时钟时间。 |
3 |
char *ctime(const time_t *timer)
返回一个表示基于参数timer的本地时间的字符串。 |
4 |
double difftime(time_t time1, time_t time2)
返回time1和time2(time1-time2)之间的秒差。 |
5 |
struct tm *gmtime(const time_t *timer)
timer的值被分解成tm结构,并以协调世界时(UTC)表示,也称为格林威治标准时间(GMT)。 |
6 |
struct tm *localtime(const time_t *timer)
timer的值被分解成tm结构,并以本地时区表示。 |
7 |
time_t mktime(struct tm *timeptr)
根据本地时区将timeptr指向的结构转换为time_t值。 |
8 |
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
根据format中定义的格式规则格式化结构timeptr中表示的时间,并将其存储到str中。 |
9 |
time_t time(time_t *timer)
计算当前日历时间并将其编码为time_t格式。 |