「conflicting type qualifiers for ‘xxx’」というエラーメッセージは、C言語で変数を宣言する際に、その変数の型に矛盾があるときに表示されます。例えば、次のようなコードでこのエラーが発生することがあります。
int main()
{
const int *ptr; // ptrはconst int型へのポインタ
int *const ptr; // ptrはint型へのconstポインタ
// 以下、変数を使用するプログラム
return 0;
}このようなコードでは、「ptr」という変数が宣言されましたが、その宣言に矛盾があります。「ptr」は、一方では「const int型へのポインタ」であり、他方では「int型へのconstポインタ」です。このような宣言はC言語では許されません。
このような場合、「conflicting type qualifiers for ‘xxx’」というエラーが表示されます。このエラーを修正するには、「ptr」の宣言を統一する必要があります。例えば、次のように変更することができます。
int main()
{
// ptrはconst int型へのポインタ
const int *ptr;
// 以下、変数を使用するプログラム
return 0;
}また、「const int型へのポインタ」でなく「int型へのconstポインタ」を宣言したい場合は、次のように変更することができます。
int main()
{
// ptrはint型へのconstポインタ
int *const ptr;
// 以下、変数を使用するプログラム
return 0;
}このように、「conflicting type qualifiers for ‘xxx’」というエラーが発生した場合は、変数の宣言を統一する必要があります。

コメント