栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C运行时库(CRT)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C运行时库(CRT)

什么是C运行时库

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

如果没有了C run-time库,main()就不会被调用,exit()也不能被响应。因为C run-time library包含了C程序运行的最基本和最常用的函数。

C运行时库除了给我们提供必要的库函数调用(如memcpy、printf、malloc等)之外,它提供的另一个最重要的功能是为应用程序添加启动函数。C运行时库启动函数的主要功能为进行程序的初始化,对全局变量进行赋初值,加载用户程序的入口函数。

Visual C++提供了两种版本的C运行时库。一个版本供单线程应用程序调用;而另一个版本供多线程应用程序调用。单线程运行时库与多线程运行时库有两个重大差别,分别如下。

类似errno的全局变量,每个线程单独设置一个,这样从每个线程中可以获取正确的错误信息。多线程库中的数据结构以同步机制加以保护,这样可以避免访问时的冲突。

Visual C++提供的多线程运行时库又分为静态链接库和动态链接库两类,而每一类运行时库又可再分为Debug版本和Release版本,因此Visual C++共提供了6个运行时库,如表1.5所示。

表1.5  Visual C++提供的C运行时库

C运行时库

库文件

Single thread(static link)

libc.lib

Debug single thread(static link)

libcd.lib

MultiThread(static link)

libcmt.lib

Debug multiThread(static link)

libcmtd.lib

MultiThread(dynamic link)

msvert.lib

Debug multiThread(dynamic link)

msvertd.lib

vs 工具上修改地方是:“项目 -> C/C++ ->代码生成 -> 运行库

对于C运行时库CRT,VC6.0、VC2005、VC2008和VC2010均提供了DLL版本和LIB版本。上述各个编译器提供的LIB版的CRT库,均实现在libcmt.lib。对应的调试版名称为libcmtd.lib。

  而DLL版本名称根据编译器不同而不同,我们可以从名称上加以分辨。
  VC6.使用的CRT库的DLL版本在MSVCRT.DLL中实现, 对应调试版本为MSVCRTD.LIB。
  VC2005使用的CRT库的DLL版本在MSVCR80.DLL中实现,对应调试版本为MSVCR80.DLL。
  VC2008使用的CRT库的DLL版本在MSVCR90.DLL中实现,对应调试版本为MSVCR90D.DLL。
  VC2010使用的CRT库的DLL版本在MSVCR100.DLL中实现,对应调试版本为MSVCR100D.DLL。
 

 具体的MT MTd MD MDd介绍见:

vs的运行库 MT MTd MD MDd区别_baidu_16370559的博客-CSDN博客_mtd是什么意思

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665537.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号