我知道C ++有一个标准库,该库由头文件组成,头文件由函数原型组成,但是它们的实现在哪里?我的意思是说我想看看cout << "hey";
的工作原理。如何编写内置函数的实现?在组装吗?
答案 0 :(得分:4)
只要遵守规范,以任何方式都可以减轻实现C ++标准库的负担。换句话说,如果您#include
是必需的标头,那么您将获得所需的功能。
其中的大部分确实是用C ++编写的,并且如果编译器工具集附带了标准库源代码,则可以使用逐行调试器查看代码。读取标准库代码的一个问题是,任何变量都必须是程序员不能#define
作为宏的变量。这就是为什么变量名以__
或_
开头并加上大写字母的原因。
由于C ++标准库的实现通常与编译器联系在一起,因此某些C ++可能具有不可移植的构造。确实,某些函数(例如std::malloc
)不能用标准C ++编写!
该库的某些组件很可能是用汇编器编写的(例如std::strlen
),甚至可能被硬编码到编译器本身中。