失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C语言标准及C标准库 运行时库简介

C语言标准及C标准库 运行时库简介

时间:2022-11-29 17:25:08

相关推荐

C语言标准及C标准库 运行时库简介

1、C语言标准:

1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了《The C Programming Language》的第一版(著作简称为 K&R),书末的参考指南 (Reference Manual) 一节给出了当时 C 语 言的完整定义,成为那时 C 语言事实上的标准,人们称之为 K&R C。

【C89 (ANSI C)】随着 C 语言在多个领域的推广、应用,一些新的特性不断被各种编译器实现并添加进来。于是,建立一个新的“无歧义、于具体平台无关的 C 语言定义” 成为越来越重要的事情。1983 年,ASC X3(ANSI 属下专门负责信息技术标准化的机构,现已改名为 INCITS)成立了一个专门的技术委员会 J11(J11 是委员会编号,全称是 X3J11),负责起草关于 C 语言的标准草案。1989 年,草案被 ANSI 正式通过成为美国国家标准,被称为 C89 标准。

【C90 (ISO C)】随后,《The C Programming Language》第二版开始出版发行,书中内容根据 ANSI C(C89)进行了更新。1990 年,在 ISO/IEC JTC1/SC22/WG14 (ISO/IEC 联合技术第 I 委员会第 22 分委员会第 14 工作组) 的努力下,ISO 批准了 ANSI C 成为国际标准。于是 ISO C(又称为 C90) 诞生了。除了标准文档在印刷编排上的某些细节不同外,ISO C(C90) 和 ANSI C(C89) 在技术上完全一样。

【C95(ISO C)】之后,ISO 在 1994、1996 年 分别出版了 C90 的技术勘误文档,更正了一些印刷错误,并在1995 年通过了一份 C90 的技术补充,对 C90 进行了微小的扩充,经过扩充后的 ISO C 被称为 C95。

【C99(ISO C)】1999 年,ANSI 和 ISO 又通过了最新版本的 C 语言标准和技术勘误文档,该标准被称为 C99 。这基本上是目前关于 C 语言的最新、最权威的定义了

【C11(ISO C)】12月8日,国际标准化组织(ISO)和国际电工委员会(IEC) 旗下的C语言标准委员会(ISO/IEC JTC1/SC22/WG14)正式发布了C11标准

【C17(ISO C)】是于6月发布的 ISO/IEC 9899: 的非正式名称,也是目前(截止到6月)为止最新的 C语言编程标准,被用来替代 C11 标准。C17 没有引入新的语言特性,只对 C11 进行了补充和修正。

2、C标准库头文件

C89中有15个标准头文件

C90和C89除排版上的某些细节不同,技术上相同

C95增加了3个标准头文件

C99增加了6个标准头文件

C11增加了5个标准头文件

C17无

C语言函数手册也称为C标准库。C标准库由在15个头文件中声明的函数、类型定义和宏组成,每个头文件都代表了一定范围的编程功能。有人说,C标准库可以分为 3 组,如何正确并熟练的使用它们,可以相应的可区分出 3 个层次的程序员:

合格程序员:<stdio.h>、<ctype.h>、<stdlib.h>、<string.h>

熟练程序员:<assert.h>、<limits.h>、<stddef.h>、<time.h>

优秀程序员:<float.h>、<math.h>、<error.h>、<locale.h>、<setjmp.h>、<signal.h>、<stdarg.h>

3、C语言标准库

UCRT的库(通用UCRT)包含通过标准 C99 CRT 库导出的函数和全局函数。UCRT 现在是 Windows 组件,作为 Windows 10 和更高版本的一部分提供。

4、VC/C++运行时库

vcruntime/VCRT库包含 Visual C++ CRT 实现特定的代码,例如异常处理和调试支持、运行时检查和类型信息、实现的详细信息和某些扩展的库函数。

实现CRT初始化和终止的库(libmmt.lib是fortran库)

C++标准库文件

当您构建项目的发布版本时,默认情况下会链接基本 C 运行时库之一(libcmt.lib、msvcmrt.lib、msvcrt.lib)。如果您在代码中包含C++ 标准库头文件之一,则 C++ 标准库将在编译时由 Visual C++ 自动链接。

#include <ios>

3、C运行时库

C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念。取这个名字就是因为你的 C 程序运行时需要这些库中的函数。

随着 C 语言的流行,各个 C 编译器的生产商/个体/团体都遵循老的传统,在不同平台上都有相对应的 Standard Library,但大部分实现都是与各个平台有关的。由于各个 C 编译器对 C 的支持和理解有很多分歧和微妙的差别,所以就有了 ANSI C;ANSI C (主观意图上)详细的规定了 C 语言各个要素的具体含义和编译器实现要求,引进了新的函数声明方式,同时订立了 Standard Library 的标准形式。所以C运行时库由编译器生产商提供。至于由其他厂商/个人/团体提供的头文件和库函数,应当称为第三方 C 运行库(Third party C run-time libraries)。

4、总结

1、c标准库,是针对c语言本身来说的,与平台无关。截至c11标准,它共包含29个头文件。

2、c运行库,是和平台相关的,也就说和操作系统相关,windows系统有windows的运行库,linux有linux的运行库。c运行库, 也就是c run time library(CRT) 是c语言中的概念,运行时库一般都是用汇编直接实现的。

总结:运行时库包括标准库,同时有包含自己平台相关的一些库。

如果觉得《C语言标准及C标准库 运行时库简介》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。