今儿个,咱来聊聊C运行时库(C Runtime Library),也就是大伙儿常说的CRT。这玩意儿,说白,就是给咱C语言程序打下手的,提供一堆基础功能。
我以为这东西很高大上,后来上手一折腾,发现也就那么回事。起初,我连它是个啥都不清楚,只知道写C代码时,总要包含一些头文件,像啥"stdio.h"、"stdlib.h"之类的。后来查资料才知道,这些头文件里声明的函数,很多都是CRT提供的。
为搞明白CRT到底干我特意去翻翻资料。这一翻不要紧,发现这东西还挺有历史。最早的时候,CRT是微软那帮人搞出来的,专门用来开发和运行Windows系统。后来这东西慢慢演变成C语言的标准配置,不光Windows上能用,Linux上也有,叫glibc(GNU C Library)。
为更直观地感受下CRT,我决定亲自动手写几个小程序试试。我先是写个最简单的“Hello, World!”程序。别看这程序就几行代码,但它背后就用到CRT提供的输出函数printf。
我又试着写个稍微复杂点的程序,用来计算一组数字的平均值。这程序里,我用到malloc和free函数来动态分配和释放内存,这些函数也是CRT提供的。通过这几个小程序的实践,我发现CRT就像个幕后英雄,默默地帮咱处理很多底层操作,比如输入输出、内存管理、文件操作等等。
为验证我的理解,我特意去看看编译后的程序。在链接阶段,编译器会把CRT的代码和咱自己写的代码“粘”到一起,最终生成一个可执行文件。这下我算是彻底明白,CRT就是咱C程序的“基石”,没它还真不行。
这通折腾下来,我对CRT的认识算是从“一无所知”变成“略知一二”。不过我知道这只是冰山一角,CRT里头还有很多门道,以后有空还得继续深入研究。