C运行时(CRT)库

来源:互联网 发布:php高级工程师招聘 编辑:程序博客网 时间:2024/05/14 07:44

1.3.2  C运行时(CRT)库

运行时库是程序在运行时所需要的库文件,通常运行时库是以lib或dll形式提供的。

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

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