C++为什么我们在头文件中包含所有声明


#include <iostream>

当你这样做,它成为通过预处理器的源,我们的文件将是5k。编译器不会做所有这些声明,对吧?(总有一些东西我们根本不用(

|链接器或编译器是否阻止了这种情况?

**因此,当您将所有声明文件都包含在头**中时

  1. 改善构建时间
  2. 链接到代码而没有定义的源代码
  3. 避免标记所有";内联">

编译器只看到声明,因为它知道定义可能在某个地方,然后在链接时使用所有定义。

经验法则是:头文件应该包含声明,源文件应该包含定义。

两种类型的声明:

  1. 声明:声明将名称引入到作用域中。一般来说,作用域要么是整个.cpp文件,要么是由{}分隔的代码中的任何内容,无论是函数、函数中的循环,甚至是函数中任意放置的{}块。引入的名称在范围内从声明到该范围结束都是可见的。声明只是告诉编译器如何使用某些东西,它实际上并没有创建任何东西
extern int y; // declares y, but does not define it.  y is defined elsewhere,
// but the program can now use it since it knows what it is (an integer)
  1. 原型:原型只是函数声明的另一个名称
double someFunction( double, int );

引用自:http://www.cplusplus.com/articles/yAqpX9L8/

还可以在此网站上获取更多信息:http://www.cplusplus.com/articles/Gw6AC542/

最新更新