ID非公開

2020/7/27 1:18

33回答

エラー分の意味を教えて下さい。 エラーが、出たのですが訳しても何を改善すればよいのか分かりませんでした。 分かる方教えて頂きたいです。 Main.c:27:5: warning: implicit declaration

C言語関連 | パソコン4,129閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

NEW! この回答はいかがでしたか? リアクションしてみよう

ThanksImg質問者からのお礼コメント

すごくわかり易かったです。 ありがとうございます。

お礼日時:2020/7/28 15:22

その他の回答(2件)

正しく関数宣言を行いましょう。 aby(x,y); では int aby(x,y); と宣言したものと見做されてしまいますし、仮引数の型の情報がありません。 少なくとも型を明示して、 void aby(int[], int); とすべきです。 さらに、理解の助けとするために識別子を書くこともできます(この識別子は、その関数原型の宣言でのみ有効なので、関数定義の仮引数の識別子と一致する必要はありません)。 void aby(int data[], int length); 下も同様。 print_array はそもそも宣言が現れる前に、使用しようとしているようです。

warning(警告): implicit(暗黙) declaration(宣言) of function 'print_array' is invalid(無効) in C99 [-Wimplicit-function-declaration] print_array(data,SIZE); C99ではprint_array関数の暗黙の宣言は無効です。 要は関数の宣言が見つからないって事かと。 タイプミスとか宣言の位置がおかしくて宣言の前に使ってないかチェックするとか? error: conflicting(相反する) types(型) for 'aby' abyの型が矛盾しています。 Main.c:27:5: note: previous(前の) implicit declaration(暗黙の宣言) is(は) here(ここ) aby(x,y); void aby(int x[],int n){ と aby(x,y); で型があって無くね?と。 error: conflicting types for 'sort' void sort(int x,int n,int i){ ^ これも同じ。