前方宣言
特に前方宣言をインターフェイスとしてヘッダーファイルに分離し、実体をソースファイルに記述することで、個々のプログラム部品の実装を隠蔽して独立性を高めることができるようになる。
Pascalや他のヴィルトの言語では、前方宣言は使う前にすべての実体を宣言しなければならないという一般的規則である。C言語でも同じ一般的規則が適用されるが、未宣言の関数のための例外がある。その結果、C言語では(賢明ではないが)相互再帰の関数ペアを実行することが可能である:
Pascalで同様の実装をする場合、firstがsecondを呼び出す前にsecondの前方宣言が必要である。前方宣言がなければ、コンパイラは識別子 secondが宣言されないで使われたというエラーメッセージを表示するであろう。
C++では構造体 (struct) に加えてクラス (class) の前方宣言をサポートするほか、C++11規格では列挙型 (enum) の前方宣言をサポートするようになった。