タイトルが示すように、このエラーの原因はわかっていますが、この状況でコンパイラがエラーを出す理由を知りたいです。
例:
main.c
void test(){
test1();
}
void test1(){
...
}
コンパイラが宣言を読み取る前に test1() の呼び出しに到達するため、暗黙的な宣言の警告が表示されますが、これには明らかな問題があります (戻り値の型がわからないなど)。すべての関数宣言を取得するために渡してから、これらのエラーを削除してコードをコンパイルしますか? やり方はとても簡単に思えますし、他の言語で同様の警告を見たことはないと思います。
私が見落としているこの状況で、この警告に特定の目的があるかどうかは誰にもわかりませんか?