C语言标准库所包含的函数功能介绍(3)

时间:2019-12-22 10:00:01 来源:全球家居网 当前位置:齐乐游 > 平面 > 手机阅读
C语言标准库所包含的函数功能介绍(3)

接上文:

C语言标准库所包含的函数功能介绍(1)

C语言标准库所包含的函数功能介绍(2)

C语言标准库所包含的函数功能介绍(3)

C标准库

10、

文件里定义了 errno,是一个int型的值。 errno 可以看作一个变量,其初始值为 0,任何标准库函数执行中出错都可能将它设置为非 0 值,但任何标准库函数的执行都不会出现将它设置为 0 的动作。

里还定义了两个宏 EDOM 和 ERANGE,它们都是非 0 整数值。如果数学函数执行中遇到参数错误(参数超出了函数的允许范围),就会将 errno 设置为 EDOM。如果数学函数计算中出现值域错误(结果溢出),就会将 errno 设置为 ERANGE。

此外,标准库还允许具体系统定义一些以 E 开头的宏,用于表示具体 C 系统的标准库可能给 errno 设置的值。

C语言标准库所包含的函数功能介绍(3)

11、

setjmp.h 文件定义了宏 setjmp()、函数 longjmp() 和变量类型 jmp_buf,该变量类型会绕过正常的函数调用和返回规则。

  • jmp_buf:用于存储宏 setjmp() 和函数 longjmp() 相关信息的数组类型。
  • int setjmp(jmp_buf environment):这个宏把当前环境保存在变量 environment 中,以便函数 longjmp() 后续使用。如果这个宏直接从宏调用中返回,则它会返回零,但是如果它从 longjmp() 函数调用中返回,则它会返回一个非零值。
  • void longjmp(jmp_buf environment, int value):该函数恢复最近一次调用 setjmp() 宏时保存的环境,jmp_buf 参数的设置是由之前调用 setjmp() 生成的。

12、

signal.h 文件定义了一个变量类型 sig_atomic_t、两个函数调用和一些宏来处理程序执行期间报告的不同信号。

  • sig_atomic_t:int 类型,在信号处理程序中作为变量使用。它是一个对象的整数类型,该对象可以作为一个原子实体访问,即使存在异步信号时,该对象可以作为一个原子实体访问。

下面是头文件 signal.h 中定义的宏:

  • SIG_DFL:默认的信号处理程序;
  • SIG_ERR:表示一个信号错误;
  • SIG_IGN:忽视信号。
  • signal.h 中定义的函数:

定义的函数:

  • void (*signal(int sig, void (*func)(int)))(int):该函数设置一个函数来处理信号,即信号处理程序。
  • int raise(int sig):该函数会促使生成信号 sig。sig 参数与 SIG 宏兼容。
C语言标准库所包含的函数功能介绍(3)

13、

assert.h 文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。

assert 宏的定义如下:

  • #define assert(ignore) ((void)0)

assert.h 中定义的唯一的函数:

  • void assert(int expression):这实际上是一个宏,不是一个函数,可用于在 C 程序中添加诊断。

14、

locale.h 文件定义了特定地域的设置,比如日期格式和货币符号。

C语言标准库所包含的函数功能介绍(3)

15、

stdarg.h 文件定义了一个变量类型 va_list 和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数。

可变参数的函数通在参数列表的末尾是使用省略号(,...)定义的。

定义的变量类型:

  • va_list:适用于 va_start()、va_arg() 和 va_end() 这三个宏存储信息的类型。

定义的宏:

  • void va_start(va_list ap, last_arg):这个宏初始化 ap 变量,它与 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。
  • type va_arg(va_list ap, type):这个宏检索函数参数列表中类型为 type 的下一个参数。
  • void va_end(va_list ap):这个宏允许使用了 va_start 宏的带有可变参数的函数返回。如果在从函数返回之前没有调用 va_end,则结果为未定义。
C语言标准库所包含的函数功能介绍(3)

相关阅读

C语言的发展历程

C语言的标准库介绍

C语言:一种高效、易学的编程语言

计算机语言介绍:机器语言、汇编语言、高级语言

C程序中常见的与内存相关的错误

平面本月排行

平面精选