【C言語】redefinition of typedef ‘xxx’

C言語で「redefinition of typedef ‘xxx’」というエラーメッセージが表示された場合、それはtypedef宣言によって同じ名前の新しい型定義が複数回行われているということを意味します。

例えば、次のようなコードでこのエラーが発生する可能性があります。

#include <stdio.h>

typedef int my_int;
typedef char my_char;

typedef int my_int; // エラーが発生する行

int main(void) {
  my_int x = 42;
  my_char c = 'A';
  printf("x = %d, c = %c\n", x, c);
  return 0;
}

この例では、typedef宣言によって同じ名前の新しい型my_intが複数回定義されています。このような場合、コンパイラは「redefinition of typedef ‘my_int’」というエラーメッセージを出力します。

このような場合、typedef宣言を適切に修正するようにプログラムを修正することで、このエラーは解消されます。

#include <stdio.h>

typedef int my_int;
typedef char my_char;

// typedef int my_int; // 修正後

int main(void) {
  my_int x = 42;
  my_char c = 'A';
  printf("x = %d, c = %c\n", x, c);
  return 0;
}

この例では、typedef宣言を修正することで、同じ名前の新しい型が複数回定義されることがなくなり、エラーが解消されました。

コメント

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