如何理解C run-time library (C运行时库)
来源:互联网 发布:java常用类库总结 编辑:程序博客网 时间:2024/06/03 22:43
2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的要害字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UNIX 系统函数,并且把其中最常用的部分独立出来,形成头文件和对应的 LIBRARY,C run-time library 就是这样形成的。 字串1
3)随后,随着 C 语言的流行,各个 C 编译器的生产商/个体/团体都遵循老的传统,在不同平台上都有相对应的 Standard Library,但大部分实现都是与各个平台有关的。由于各个 C 编译器对 C 的支持和理解有很多分歧和微妙的差别,所以就有了 ANSI C;ANSI C (主观意图上)具体的规定了 C 语言各个要素的具体含义和编译器实现要求,引进了新的函数声明方式,同时订立了 Standard Library 的标准形式。所以C运行时库由编译器生产商提供。至于由其他厂商/个人/团体提供的头文件和库函数,应当称为第三方 C 运行库(Third party C run-time libraries)。 字串3
4)C run-time library里面含有初始化代码,还有错误处理代码(例如divide by zero处理)。你写的程序可以没有math库,程序照样运行,只是不能处理复杂的数学运算,不过假如没有了C run-time库,main()就不会被调用,exit()也不能被响应。因为C run-time library包含了C程序运行的最基本和最常用的函数。 字串4
5)到了 C 世界里,有另外一个概念:Standard C Library,它包括了上面所说的 C run-time library 和 STL。包含 C run-time library 的原因很明显,C 是 C 的超集,没有理由再重新来一个 C run-time library. VC针对C 加入的Standard C Library主要包括:LIBCP.LIB, LIBCPMT.LIB和 MSVCPRT.LIB
6)Windows环境下,VC提供的 C run-time library又分为动态运行时库和静态运行时库。
动态运行时库主要是DLL库文件msvcrt.dll(or MSVCRTD.DLL for debug build),对应的Import library文件是MSVCRT.LIB(MSVCRTD.LIB for debug build)
静态运行时库(release版)对应的主要文件是:
LIBC.LIB (Single thread static library, retail version)
LIBCMT.LIB (Multithread static library, retail version) 字串5
msvcrt.dll提供几千个C函数,即使是像printf这么低级的函数都在msvcrt.dll里。其实你的程序运行时,很大一部分时间时在 这些运行库里运行。在你的程序(release版)被编译时,VC会根据你的编译选项(单线程、多线程或DLL)自动将相应的运行时库文件 (libc.lib,libcmt.lib或Import library msvcrt.lib)链接进来。
字串6
编译时到底哪个C run-time library联入你的程序取决于编译选项:
/MD, /ML, /MT, /LD (Use Run-Time Library)
你可以VC中通过以下方法设置选择哪个C run-time library联入你的程序:
To find these options in the development environment, click Settings on the Project menu. Then click the C/C tab, and click Code Generation in the Category box. See the Use Run-Time Library drop-down box. 字串8
从程序可移植性考虑,假如两函数都可完成一种功能,选运行时库函数好,因为各个 C 编译器的生产商对标准C Run-time library提供了统一的支持.
- 如何理解C run-time library(C运行时库)
- 如何理解C run-time library(C运行时库)
- 理解C run-time library (C运行时库)
- 如何理解C run-time library (C运行时库)
- 如何理解C run-time library (C运行时库)
- 如何理解C run-time library (C运行时库/CRT)
- 如何理解C run-time library (C运行时库)
- 如何理解C run-time library (C运行时库)
- 如何理解C run-time library (C运行时库)
- 如何理解C run-time library (C运行时库) 2010-9-16 14:55
- 如何理解C run-time library (C运行时库)
- 如何理解C run-time library (C运行时库)
- C run-time library (C运行时库)说明
- C run-time library (C运行时库)说明
- C运行时库详解(C Run-Time Library)
- C运行时库(C Run-time Library)详解
- C运行时库(C Run-time Library)详解
- C运行时库(C Run-time Library)详解
- 我们期待自己成为一个优秀的软件模型设计者
- 一篇关于struts2文件上传的好文章
- Win32下的录音编程
- 利用CDONTS组件来发送邮件
- vista下,应用服务的系统日期总晚8个小时的解决方法
- 如何理解C run-time library (C运行时库)
- 常用的BAT命令和用法
- DataGrid-数据格式设置表达式
- Plug-ins Phantom 1.20 and OllyDump 3.00 for Immunity Debugger by RSI
- 三种不同内存分配策略比较
- 针对应用的测试工具
- 日志操作之JAVA-Apache
- IT项目管理-计划-估算
- tomcat详细部署之我见