标准库头文件功能原型的实现如何用C ++编写?

时间:2019-06-06 12:24:59

标签: c++ function header

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

1 个答案:

答案 0 :(得分:4)

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

其中的大部分确实是用C ++编写的,并且如果编译器工具集附带了标准库源代码,则可以使用逐行调试器查看代码。读取标准库代码的一个问题是,任何变量都必须是程序员不能#define作为宏的变量。这就是为什么变量名以___开头并加上大写字母的原因。

由于C ++标准库的实现通常与编译器联系在一起,因此某些C ++可能具有不可移植的构造。确实,某些函数(例如std::malloc)不能用标准C ++编写!

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