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