タイトルが言うように、私はこのエラーの原因を知っていますが、コンパイラがこの状況でなぜそれを与えるのかを知りたいと思います。関数がCで定義される前に関数を使用しているときの暗黙の宣言は、なぜコンパイラーがこれを理解できないのですか?
例:
main.cの
void test(){
test1();
}
void test1(){
...
}
それはその宣言を読む前に、私は明白な問題を見ることができますTEST1()への呼び出しに到達するコンパイラなどの暗黙的な宣言の警告を与えるだろうこれは(戻り値の型が分からない)ものですが、なぜコンパイラーがすべての関数宣言を取得するための単純なパスを実行できないのでしょうか?それはやるのがとても簡単なようで、他の言語でも同様の警告が表示されたとは思いません。
私が見落としているこの状況で、この警告の特定の目的があるかどうか誰にも分かりますか?
私は推測すると、それはずっと前に設計されたツールから二日酔いだと思います! – rolls