「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’」というエラーが発生した場合は、変数の宣言を統一する必要があります。
コメント