関数宣言
前に戻りの型が付き、後にパラメーター・リストが続く関数 ID は、 関数宣言 または関数プロトタイ プ と呼ばれます。 プロトタイプは、コンパイラーに、その関数を使用する前に関数の形式と存在を知らせます。コンパイラーは、関数呼び出しのパラメーターと関数宣言におけるパラメーターとの 不一致を検査することができます。 コンパイラーは、引数の型の検査および引数の変換のためにも、この宣言を使用し ます。
関数の暗黙宣言は許可されていません。どの関数も、呼び出す前に、明示的に宣言しておく必要があります。 
関数の呼び出しが行われた時点で関数宣言が可視でない場合、コンパイラーは、extern int func(); の暗黙宣言を想定します。ただし、C99 に準拠するためには、ユーザーは、関数を呼び出す前に、その関数を明示的にプロトタイプ化する必要があります。
関数を宣言する際のエレメントは、次のとおりです。
- 関数のストレージ・クラス指定子。これは、リンケージを指定します。
- 関数の戻りの型指定子。これは、戻される値のデータ型を指 定します。
- 関数指定子。これは、関数の追加プロパティ ーを指定します。
- 関数宣言子。これは、パラメーターのリストだけでなく、関 数の ID を含みます。
関数宣言の形式はすべて、次のとおりです。
関数宣言の構文 >>-+-------------------------+--+--------------------+----------> '-storage_class_specifier-' '-function_specifier-' >--return_type_specifier--function_declarator--;---------------><

注: function_declarator が後置戻り型を組み込む場合、return_type_specifer は auto でなければなりません。後置戻り型について詳しくは、後置戻り型 (C++11)を参照してください。

