Header files(头文件)c++头文件的一些东西!

代码文件 (with a .cpp extension)并不是唯一的文件中经常出现的程序。其他类型的文件称为头文件,有时被称为一个包含文件。头文件几乎总是有一个。h扩展。一个头文件的目的是保持声明其他文件使用。
使用标准库的头文件

考虑以下程序:

#include 
int main()
{
    using namespace std;
    cout << "Hello, world!" << endl;
    return 0;
}

该程序输出“Hello,world !“到控制台使用cout。然而,我们的节目,所以从来都没有定义cout编译器如何知道cout吗?答案是,cout已经宣布在一个头文件被称为“iostream”。当我们使用线# include < iostream >,我们告诉编译器来定位,然后阅读所有的声明头文件命名为“iostream”。


记住,头文件通常只包含声明。他们不定义如何实现的东西,你已经知道你的程序不会链接如果它不能找到一些你使用的实现。所以如果cout只是定义在“iostream“头文件,它是如何实现的?它是实现在运行时支持库,它是自动链接到你的程序在链接阶段。

Header files(头文件)c++头文件的一些东西!_第1张图片

图书馆是一个包的代码是在许多项目中重用。通常,一个库包含一个头文件,包含声明一切图书馆希望暴露(公开)给用户,和一个预编译对象,其中包含所有的实现代码编译成机器语言。这些库通常有一个。自由或。dll扩展在Windows上,和一个。一个或。所以扩展在Unix。为什么图书馆预编译的?首先,由于图书馆很少改变,他们不需要重新编译通常,如果曾经。这将是一个浪费时间来编译他们每次你编写了一个程序,使用它们。第二,因为预编译对象是在机器语言,它阻止人们访问或更改源代码,这是重要的企业或人谁不想让他们的源代码用于知识产权的原因。
写你自己的头文件
现在让我们回到这个例子我们正在讨论在前面的教训。当我们离开时,我们有两个文件,添加cpp和主要。cpp,看起来像这样:
add.cpp:

int add(int x, int y)
{
    return x + y;
}

main.cpp:

#include 
 
int add(int x, int y); // forward declaration using function prototype
 
int main()
{
    using namespace std;
    cout << "The sum of 3 and 4 is " << add(3, 4) << endl;
    return 0;
}


你可能感兴趣的:(c++头文件的一些东西)