【C言語】incompatible types when initializing type ‘xxx’ using type ‘yyy’

C言語で「incompatible types when initializing type ‘xxx’ using type ‘yyy’」というエラーが表示される場合、その変数を初期化する値の型が、その変数の型と互換性がないことが原因です。

例えば、次のようなコードがある場合

int main() {
  int a = "hello";
  ...
}

このように、文字列リテラル"hello"を整数型の変数aに初期化しようとしています。

しかし、文字列リテラルは文字列を表すデータ型であるchar *型であり、整数型とは互換性がないため、「incompatible types when initializing type ‘xxx’ using type ‘yyy’」というエラーが表示されます。

このような場合、変数を初期化する値の型が変数の型と互換性があるようにする必要があります。

例えば、次のように書き換えることができます。

int main() {
  int a = 10;
  ...
}

このように、整数型の変数aに整数リテラル10を初期化することで、「incompatible types when initializing type ‘xxx’ using type ‘yyy’」というエラーが表示されなくなります。

コメント

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