运行时库
来源:互联网 发布:out of the woods 知乎 编辑:程序博客网 时间:2024/05/23 19:20
1)运行时库就是C run-time library,是C而非C++语言世界的概念:取这个名字就是因为你的 C程序运行时需要这些库中的函数.
2)C语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用C 本身重写了 90% 以上的 UNIX 系统函数,并且把其中最常用的部分独立出来,形成头文件和对应的 LIBRARY,C run-time library 就是这样形成的。
3)随后,随着 C 语言的流行,各个 C 编译器的生产商/个体/团体都遵循老的传统,在不同平台上都有相对应的 Standard Library,但大部分实现都是与各个平台有关的。由于各个 C 编译器对 C 的支持和理解有很多分歧和微妙的差别,所以就有了 ANSI C;ANSI C (主观意图上)详细的规定了 C 语言各个要素的具体含义和编译器实现要求,引进了新的函数声明方式,同时订立了 Standard Library 的标准形式。(所以运行时库由编译器生产商提供)至于由其他厂商/个人/团体提供的头文件和库函数,应当称为第三方 C 运行库(Third party C run-time libraries)。
4)C run-time library里面含有初始化代码,还有错误处理代码(例如divide by zero处理)。你写的程序可以没有math库,程序照样运行,只是不能处理复杂的数学运算,不过如果没有了C run-time库,main()就不会被调用,exit()也不能被响应。因为C run-time library包含了C程序运行的最基本和最常用的函数。
5)到了C++ 世界里,有另外一个概念:Standard C++ Library,它包括了上面所说的 C run-time library 和 STL。包含 C run-time library 的原因很明显,C++ 是 C 的超集,没有理由再重新来一个 C++ run-time library.
6)Windows下,运行库主要是DLL库文件。VC的运行库时msvcrt.dll(or MSVCRTD.DLL for debug build) and MSVCIRT.DLL (or MSVCIRTD.DLL for debug build).
另外mfcxx.dll提供对MFC支持。msvcrt.dll提供几千个C函数,即使是像printf这么低级的函数都在msvcrt.dll里。其实你的程序运行时,很大一部分时间时在这些运行库里运行。在你的程序被编译时,VC会根据你的编译选项(单线程、多线程或DLL等)自动将相应的lib文件(libc.lib,libcmt.lib和msvcrt.lib等)链接进来。
从程序可移植性考虑,如果两函数都可完成一种功能,选运行期函数好,因为各个 C编译器的生产商对标准run-time library提供了统一的支持.
- 运行时和运行库
- 运行时库
- C运行时库
- C运行时库
- C运行时库
- about运行时库
- 运行时库
- C运行时库
- VC运行时库
- C 运行时库
- VC运行时库
- VC运行时库
- C运行时库
- VC运行时库
- 运行时库
- VC运行时库
- 运行时库
- 运行时库概念
- 牛顿迭代法解一元方程组
- 上课代码
- winform 下 从DataGridView 的 DataGridViewCheckBoxCell 列取值和保存问题
- 手把手教你玩转SOCKET模型之重叠I/O篇(上)
- oracle sql 优化(摘一)
- 运行时库
- 手把手教你玩转SOCKET模型之重叠I/O篇(下)
- The differences of Circuit Maintenance Messages between BICC & ISUP
- windows核心编程16
- 同步串口类
- windows核心编程18
- ASP 三十二条精华代码
- windows核心编程19
- 如何手工在 SQL Server 2005 中为安装程序增加计数器注册表项值