我一直在想C / C ++运行时和编写的标准库是什么语言。起初我认为它是一种随意的C / C ++语言,但是为了能够与机器对话我怀疑C / C ++就足够了。因此,我认为它可能是汇编语言。如果它是C / C ++或asm语言,为什么我真的看不到源代码飞来飞去?或者我可能缺乏搜索技能......
答案 0 :(得分:4)
所有运行时和标准库都是用C / C ++编写的。大多数供应商都提供源代码。
答案 1 :(得分:4)
它们通常用C语言编写,其中混合了一些程序集.Visual Studio附带了大量的CRT源代码(C RunTime),如果不是全部的话。 Linux glibc显然是开源的: http://ftp.gnu.org/gnu/glibc/
答案 2 :(得分:4)
它们通常使用其宿主语言编写,与操作系统API互操作以获取无法本机获取的内容。许多功能都是用纯语言编写的 - 例如,容器和容器。 C ++标准库的算法部分几乎必须用C ++编写。事实上,几乎整个C ++标准库都必须用C ++编写,因为它是模板化的。我不知道为什么你没有找到任何来源 - 任何开发者都可以使用Microsoft CRT源代码,我想,我在这里发布CRT源代码时肯定会遇到问题,GNU libc ++是开源的,我'我很确定。
答案 3 :(得分:1)
大多数运行时都是用C或C ++编写的,但是有一个重要的异常,那就是调用内核的代码。在大多数操作系统上,这是通过使用特殊指令(SWI
或SVC
)生成软件中断来完成的。在C或C ++中没有相应的,因此将使用汇编程序。汇编程序通常还用于实现高度优化的memcpy
,memmove
,memcmp
和其他类似函数。