前方宣言
C言語の例を示す。
関数の前方宣言はまた関数プロトタイプでもある。コンパイラはソースコード中に出現したこれらの宣言を処理した後、プログラマに以降の部分でelements, foo, user_typeの実体の使用を許可する。ただし、宣言はあくまでプログラムにおける各シンボルの意味(役割)を示すだけである。また、要素数が明らかでない静的配列や、メンバーが分からない構造体は不完全な型 (incomplete type) であり、sizeof演算子を適用したり、メンバーにアクセスしたりすることはできない。最終的にプログラマは(例えば以下のような)宣言した実体のための定義をどこかで提供しなければならない。
大抵のケースでは、実体の定義の順序を工夫することで、前方宣言をせずともプログラムを記述することはできるが、循環参照を解決したり、自己参照構造体を定義したり、ソースコードの解析回数を減らして効率よくプログラムをコンパイルしたりするために前方宣言が用いられる。