1. ホーム

コンパイル時のエラーで型が競合する場合の対処法

2022-02-27 08:36:44

以下のエラーでコンパイルします。

error: Complicting types for xxx

error: xxx の前の暗黙の宣言はここです。

原因と解決策

i. 関数が宣言される前に使用されている、または関数のプロトタイプが宣言されずに使用されている。

これは、ヘッダで宣言されていない関数実装ファイルや、関数が使用される場所の後で宣言された関数実装ファイルで発生しがちです。

回避策

関数宣言をファイル内の早い位置に配置する。

<ブロッククオート

II. 関数宣言のプロトタイプにある引数や戻り値の型と、関数の実装で使用される型との間に矛盾がある。

<ブロッククオート <ブロッククオート

解決策

<ブロッククオート <ブロッククオート <ブロッククオート

(a) 関数ヘッダを実装から宣言にコピーし、その呼び出しが実装と整合していることが確かであれば、解決してください。

<ブロッククオート