理解C ++头文件/库和函数的源代码

时间:2018-04-24 11:33:00

标签: c++ header

#ifndef CPPREFERENCE_IOSTREAM_H
#define CPPREFERENCE_IOSTREAM_H

#include <ios>
#include <streambuf>
#include <istream>
#include <ostream>
#include <iosfwd>

namespace std {

extern istream cin;
extern ostream cout;
extern ostream cerr;
extern ostream clog;
extern wistream wcin;
extern wostream wcout;
extern wostream wcerr;
extern wostream wclog;

}  // namespace std

#endif // CPPREFERENCE_IOSTREAM_H

代码是iostream标头。我试图了解如何在此头文件中实现函数cout。不幸的是,虽然我找不到它?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你真的不会在这里看到任何实现。当您执行#include <iostream>时,它所做的就是将此代码粘贴到您的代码中。这样编译器将看到所有定义,如extern istream cin,它知道有类似std::cin的东西。然而,这并不意味着它知道它是如何实现的。

C ++标准库的实现将来自某些dll文件(在Windows操作系统上)。我认为这是MSVCP*.dll。此dll文件将包含特定于该操作系统的已编译机器代码。

编译应用程序时,dll将链接到该应用程序。但你真的无法获得它的源代码(微软的人拥有它)。虽然您可以反汇编dll,但要观察其中的代码。