パラメーター
引数に関数呼び出しが関数に渡される値の名前です。パラメーターは関数が受け取ることを想定する値です。関数プロトタイプでは関数名の後にかっこは関数のパラメーターと型の一覧を示します。パラメーター宣言がパラメーターに格納された値の種類サイズおよび識別子を指定します。
構文
関数の定義 :
宣言指定子の opt 属性 seqopt 宣言子リストの 複合ステートメント opt の宣言seq 属性 は /* */Microsoft 仕様です。
宣言子 :
ポインターを opt 直接宣言直接宣言 : 関数の宣言は /* */
( 直接宣言の 型パラメーター リスト ) の新しい宣言子 /* */パラメーター リスト型 : のパラメーター リストは /* */
パラメーター リストパラメーター リスト は…
パラメーター リスト :
パラメーター宣言パラメーター リストの の パラメーター宣言
パラメーター宣言 :
宣言指定子の宣言宣言指定子の抽象宣言 opt
型パラメーター リストは コンマで区切られたパラメーター宣言のシーケンスです。パラメーター リストの各パラメーターの形式は次のようになります。:
[register] type-specifier [declarator]
自動 の属性で宣言された関数パラメーターはエラーを生成します。関数本体にパラメーターが渡される関数の識別子に値を表しています。プロトタイプのパラメーターを指定できますが名前は宣言の最後にスコープから外れるためこのパラメーターは関数定義と同じ方法または別に割り当てることができます。これらの識別子は関数本体の最も外側のブロックに定義し直すことはできませんがパラメーター リストを含むブロックのように入れ子になったブロックの内部で再定義できます。
型パラメーター リスト の各識別子はこの例に示すように適切な型指定子は置く必要があります :
void new( double x, double y, double z )
{
/* Function body here */
}
1 文字以上のパラメーターがパラメーター リストで実行される場合リストは 3 は… ピリオド () に続いてコンマで終了できます。「省略記号表記と呼ばれるこの構造では関数に」の引数の数を示します。(詳細については 可変個の引数との呼び出し を参照してください)。ただし関数を呼び出して最後のパラメーターをコンマの前にあると少なくとも同じ数の引数が必要です。
引数が関数に渡すパラメーター リストでない場合はキーワード void に置き換えられます。この void の使用はの型指定子として使用とは異なります。
省略記号表記のすべての使用を含むパラメーターの順序と型はすべての関数宣言 (存在する場合) と関数定義が同じである必要があります。通常の算術変換に対応するパラメーターの型との互換性がない場合あります。引数の型。(数値変換の詳細については通常の算術変換 を参照してください)。省略記号の後に引数はチェックされません。パラメーターは基本クラス構造体共用体配列またはポインター型を持つことができます。
コンパイラは各パラメーターに引数で通常の算術変換が必要に応じて個別に実行します。変換後パラメーターは int より短くないしパラメーターの型がプロトタイプで フローティング として明示的に指定するパラメーターに フローティング の型がありません。つまりたとえば char としてパラメーターを宣言することによってこれを int として宣言することと同じです。