.cファイルに定義されてる関数のプロトタイプ宣言の書かれているヘッダーファイルをを.cファイルにインクルードしていることってあるじゃないですか? その場合、暗黙的にしても明示的にしてもexternによって、その定義の書かれたトランスレーションユニットに対して
外部に定義があると言っているようなもので間違ってますよね。