如子程序的更小的组件，这些组件可以通过许多物理源文件分发，这些源文件被单独编译。当一个子程序在定义的位置以外的地方被使用时，就需要引入前置声明和函数原型的概念。例如，一个函数在一个源文件中有如下定义：在另一个源文件中引用的时候就可以声明成这样（包含函数原型）：但是，这个简单的方法需要程序员为codice_1在两个地方维护函数声明，一个是包含函数实现的文件，以及使用该函数的文件。如果函数的定义改变了，程序员必须要更改散布在程序中的所有的原型。头文件提供了解决办法。模块的头文件声明作为模块"公共接口