标准库头文件函数原型的实现是如何用 c++ 编写的?

How are implementations of standard library header files function prototypes are written in c++?

本文关键字:何用 c++ 实现 文件 函数 原型 标准      更新时间:2023-10-16

我知道C++有一个标准库,它由由函数原型组成的头文件组成,但它们的实现在哪里?我的意思是我想看看cout << "hey";是如何运作的。内置函数的实现是如何编写的?在组装中?

只要遵守规范,就可以以任何方式减轻实现C++标准库的负担。换句话说,如果您#include必要的标头,那么您将获得所需的函数。

其中大部分确实是用C++编写的,如果您的编译器工具集附带标准库源代码,则可以使用逐行调试器查看代码。读取标准库代码的一个问题是,任何变量都需要是程序员不能#define为宏的变量。这就是为什么变量名称以___为前缀,后跟大写字母的原因。

其中一些C++很可能具有不可移植的构造,因为C++标准库实现通常与编译器相关联。确实有些功能(例如std::malloc) 不能用标准C++书写!

库的某些组件很可能是用汇编程序编写的(例如std::strlen),甚至可能硬编码到编译器本身中。