‘xxx’ redeclared as different kind of symbolというエラーは、変数や関数などのシンボル(識別子)が重複して定義された場合に発生します。C言語では、同じ名前のシンボルを定義することはできません。
例えば、次のようなコードを書いた場合にこのエラーが発生します。
int xxx = 10; int xxx() { return 20; }
このコードでは、xxx
という名前の変数が定義されているのに、その後に同じ名前の関数が定義されています。これはC言語では許可されないため、コンパイラはこのような重複した定義を検出してエラーを出力します。
このエラーを修正するには、シンボルの名前を変更するか、重複している定義を削除する必要があります。例えば、次のような修正を行うことでこのエラーを解消できます。
int xxx_int = 10; int xxx_func() { return 20; }
また、関数と変数を区別するために、C言語では名前の先頭にアンダースコアを付けることが一般的です。そのため、以下のような修正も可能です。
int _xxx = 10; int xxx() { return 20; }
これらの修正を行うことで、重複した定義から生じるエラーを回避することができます。
コメント