Upload
zoom-quiet
View
1.016
Download
0
Embed Size (px)
DESCRIPTION
{9月22日语音讲座vol.26}杨军: C++运行库理解 http://bbs.code.ijinshan.com/thread-1374-1-1.html
Citation preview
了解 C/C++运行库
杨 军
C/C++运行库是什么
C/C++运行库的功能
如何减小软件的大小
主要分享内容
1
2
3
C/C++运行库是什么
每一个 C/C++程序,它的背后都有一套庞大的代码来进行支撑,以使得该程序能够正常运行。这套代码就是 C/C++运行库。 C/C++运行库由编绎器提供。
它主要有两个作用:实现C/C++标准库函数的和实现 C/C++语言的一些机制。
C/C++运行库的大部分代码都是在实现 C,C++标准库函数 , 如 : printf, fopen, malloc, strlen, time, _beginthreadex, std::string等。
实现 C/C++标准库函数
1. 标准库函数与Windows API 的关系
2. 需要注意的一些函数。 a. 使用了 TLS的库函数 , 比如 _localtime64 b. _beginthreadex和 CreateThread()
3. 动态链接 (MD)与静态链接 (MT)。 a: 链接错误,大部分是因为 lib的编绎方式不一致。 b: 模块间内存释放 , 谁分配谁释放。
C/C++运行库实现了 C/C++语言自身的一些语言机制,比如main函数进入前全局变量要完成构造。静态变量的只能初始化一次,异常处理机制等。
实现 C/C++语言机制
1. 全局变量及类中静态成员变量的初始化。
3. 静态变量的初始化
2. 应用程序的入口函数。
如何减小软件的 Size
2. 模块数非常少,使用MT编绎
1. 模块数非常多,使用MD编绎
3. 使用 VC6运行库。
4. 不使用 CRT
Thank you !
推荐书籍 :
2. 《 windows核心编程》
1. 《程序员的自我修养》