第13章 运行库实现
13.1 C语言运行库
13.2 如何使用Mini CRT
13.3 C++运行库实现
13.4 如何使用Mini CRT++
13.5 本章小结
在本书的第4章,为了能够减小可执行文件的尺寸,摆脱对Glibc的依赖,实际上已经实现了一个超小型的CRT,尽管这个CRT只拥有两个函数:exit()和print(),分别用于退出进程和输出一个字符串。但无论如何它给我们带来了一个信息,那就是CRT也并不是那么神秘、不可替代的。这一章将是激动人心的一章,我们将带领读者一步步实现一个迷你的CRT。
当然真正实用的CRT是庞大到无法在一章之内完全呈现出来的,所以在这一章我们仅实现CRT几个关键的部分。虽然这个迷你CRT仅仅实现了为数不多的功能,但是它已经具备了CRT的关键功能:入口函数、初始化、堆管理、基本IO,甚至还将实现堆C++的new/delete、stream和string的支持。
本章主要分为两个部分,首先实现一个仅仅支持C语言的运行库,即传统意义上的CRT。其次,将为这个CRT加入一部分以支持C++语言的运行时特性。