【C言語】function definition declared ‘typedef’

C言語で「function definition declared ‘typedef’」というエラーが表示される場合、その関数定義にtypedefが使用されていることが原因です。

typedefは、型名を定義するためのキーワードです。例えば、次のようなコードがある場合

typedef int myint;

このように、myintという型名を定義することができます。この場合、myintintの別名となります。

しかし、関数定義にtypedefを使用することはできません。例えば、次のようなコードがある場合

typedef int add(int a, int b);

int main() {
  ...
}

このように、関数定義の前にtypedefを使用しているため、「function definition declared ‘typedef’」というエラーが表示されます。

このような場合、typedefを使用する場合は、関数定義の後に定義する必要があります。

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

int add(int a, int b);

typedef int add(int a, int b);

int main() {
  ...
}

このように、関数定義の後にtypedefを使用することで、「function definition declared ‘typedef’」というエラーが表示されなくなります。

コメント

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