C 関数の定義
関数定義はパラメーターの関数の名前を受け取ることを想定して数値型と戻り値の型を指定します。関数定義は関数の動作をローカル変数宣言でを関数本体を調べるステートメントが含まれます。
構文
: 単位移動
外部宣言移動単位の外部宣言
外部宣言 : /* 外部 (ファイル) の範囲でのみ許しました */
関数定義declaration
関数の定義 : 次の宣言は /* の関数宣言子 */。
宣言指定子の opt 属性 seqopt 宣言子リストの 複合ステートメント opt の宣言seq 属性 は /* */Microsoft 仕様です。
プロトタイプのパラメーターは次のとおりです :
宣言指定子 :
ストレージ クラス指定子の宣言指定子 opt型指定子の宣言指定子 opt
宣言型修飾子の指定子 opt
宣言リスト :
declaration宣言リストの宣言
declarator:
ポインターを opt 直接宣言直接宣言 : 関数の宣言は /* */
( 直接宣言の 型パラメーター リスト ) の新しい宣言子 /* */直接宣言 ( 識別子 の 一覧 opt**)** のスタイルの宣言時代遅れ /* */
定義のパラメーター リストはこの構文を使用して :
パラメーター リスト型 : /* */ パラメーター リスト
パラメーター リストパラメーター リスト は…
パラメーター リスト :
パラメーター宣言パラメーター リストの の パラメーター宣言
パラメーター宣言 :
宣言指定子の宣言*宣言指定子は宣言子を抽出します。*opt
旧形式の関数定義のパラメーター リストはこの構文を使用して :
ID リスト : 時代遅れスタイルの関数定義と宣言で使用される /* */
identifierID リスト ID
関数本体の構文は次のとおりです :
- 複合ステートメント : 関数本体 /* */
- リスト opt**{** declaration ステートメント リスト opt**}**
関数宣言を変更できる唯一のストレージ クラスの指定子は extern と 静的 です。extern 指定子は関数が他のファイルから参照できることを示しています ; つまり関数名はリンカーにエクスポートします。 静的 指定子は関数が他のファイルから参照できないことを示しています ; つまり名前はリンカーによってエクスポートします。ストレージ クラスが関数定義ではextern と見なされます。いずれの場合も関数定義は位置からファイルの末尾に常に表示されます。
オプション の指定子 と必要な declarator には関数の戻り値の型と名前を指定します。declarator は関数と関数名の後にかっこを付ける識別子の組み合わせです。省略可能な 属性 はSeq 終了 関数の属性 で定義されている Microsoft 固有の機能です。
直接宣言 () declarator の構文で定義されている関数の名前とパラメーターの識別子を指定します。 直接宣言の 型パラメーター リスト が含まれている場合はすべてのパラメーターの型を指定します。このような宣言は関数呼び出し後にの関数プロトタイプとして機能します。
関数定義の 宣言 の 一覧 declaration は 登録 以外の ストレージ クラス指定子を 含めることはできません。 指定子の宣言 構文の 型指定子が 登録 のストレージ クラスが int 型の値に指定した場合にのみ省略できます。
複合ステートメントを 外部で宣言された項目に対するローカル変数の宣言参照およびステートメントを含む関数本体です。
セクション 関数の属性ストレージ クラス戻り値の型パラメーター と 関数本体 は関数定義のコンポーネントについて詳しく説明します。