接上文:

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

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

C标准库

10、<errno.h>

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

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

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

11、<setjmp.h>

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>

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 宏兼容。

13、<assert.h>

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

assert 宏的定义如下:

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

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

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

14、<locale.h>

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

15、<stdarg.h>

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,则结果为未定义。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月20日

ThinkPHP5快速入门基础

ThinkPHP5快速入门基础一、基础快速入门 ( 一 ) :基础本章介绍了 ThinkPHP5 .0 的安装及基本使用 ,并给出了一个最简单的示例带你了解如何开始开发 ,主要包 含 :简介官网下载 omposer安装和更新CGit下载和更新目录结构运行环境入口文件调试模式控制器视图读取数据总结在学习 ThinkPHP5.0 之前 ,如果你还不理解面向对象和命名空间的概念 ,建议首先去PHP手册恶

ThinkPHP5快速入门

ThinkPHP5快速入门目 录零、序言一、基础二、URL和路由三、请求和响应四、数据库五、查询语言六、模型和关联 (1)模型定义 (2)基础操作 (3)读取器和修改器 (4)类型转换和自动完成 (5)查询范围 (6)输入和验证 (7)关联 (8)模型输出七、视图和模板八、调试和日志九、API开发十、命令行工具十一、扩展十二、杂项SessionCookie验证

热门专题

大理科技管理学校|大理科技管理中等职业技术学校,大理市科技管理中等职业技术学校
大理科技管理学校
开放大学|开放大学报名,开放大学报考,开放大学,什么是开放大学,开放大学学历,开放大学学费,开放大学报名条件,开放大学报名时间,开放大学学历,开放大学专业
开放大学
云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
云南网站建设|云南网站制作,网站建设,云南网站开发,云南网站设计,云南网页设计,云南网站建设公司,云南网站建设
云南网站建设
卓越综合高中|卓越综合高中
卓越综合高中
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招
安徽开放大学|安徽开放大学报名,安徽开放大学报考,安徽开放大学,什么是安徽开放大学,安徽开放大学学历,安徽开放大学学费,安徽开放大学报名条件,安徽开放大学报名时间,安徽开放大学学历,安徽开放大学专业
安徽开放大学
昆明综合高中|昆明综合高中
昆明综合高中

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部