【C言語】parameter ‘xxx’ is initialized

「parameter ‘xxx’ is initialized」というエラーメッセージは、関数の引数が初期化されている場合に表示されます。これは、関数の引数は、値を渡すための変数であり、初期化する必要がありません。そのため、関数の引数に初期値を設定してはいけません。

例えば、次のようなコードでは、関数fooの引数が初期化されているため、このようなエラーが表示されます。

void foo(int x = 0) { // エラー: xが初期化されています
    // 関数fooの処理
}

正しい使い方は、次のように、関数の引数に初期値を設定しないようにすることです。

void foo(int x) { // 正しい使い方: xに初期値は設定されていません
    // 関数fooの処理
}

また、初期化されていない変数には、型に応じた初期値が設定されます。例えば、int型の変数xには、0が設定され、char型の変数cには、’\0’が設定されます。

void foo(int x, char c) {
    // 関数fooの処理
    // xには0が、cには'\0'が設定されています
}

コメント

タイトルとURLをコピーしました