微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C和C ++标准库用什么语言编写?他们的源代码在哪里?

如何解决C和C ++标准库用什么语言编写?他们的源代码在哪里?

| 我一直想知道C / C ++运行时和标准库是用哪种语言编写的。起初,我认为这是一种随意的C / C ++语言,但是为了能够与机器对话,我怀疑C / C ++是否足够。因此,我认为它可能是汇编语言。如果它是C / C ++或asm语言,那么为什么我真的看不到源代码在飞来飞去?也许我缺乏搜索技能...     

解决方法

        它们通常以其宿主语言编写,并与操作系统API互操作以获得无法从本地获得的东西。许多功能都是用纯语言编写的,例如,C ++标准库的容器和算法部分几乎必须用C ++编写。实际上,几乎所有的C ++标准库都必须用C ++编写,因为它是模板化的。我不知道您为什么找不到任何源-任何开发人员都可以使用Microsoft CRT源,我想,我当然已经在此处发布CRT源时看到了问题,并且GNU libc ++是开源的, 我相当确定。     ,        所有的运行时和标准库都用C / C ++编写。大多数供应商都提供源代码。     ,        它们通常是用C编写的,并带有一些汇编。VisualStudio附带了很大一部分CRT(C运行时)源代码(如果不是全部)。 Linux glibc显然是开源的: http://ftp.gnu.org/gnu/glibc/     ,        大多数运行时都是用C或C ++编写的,但是有一个重要的例外,那就是调用内核的代码。在大多数操作系统上,这是通过使用手臂上的特殊指令(
SWI
SVC
)生成软件中断来完成的。在C或C ++中没有与此等效的功能,因此将使用汇编器。汇编程序通常还用于实现高度优化的
memcpy
memmove
memcmp
和其他类似功能。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。