関数に 以外の戻り値の型がvoid
あり、関数が何も返さない場合、コンパイラはガベージ値 (おそらく初期化されていない値と見なされる) を返すと思います。コンパイル時に発生するのに、なぜエラーが表示されないのでしょうか?
例えば、
int func1() {
return; // error
}
int func2() {
// does not return anything
}
2 番目func2
はエラーをスローするはずですが、そうではありません。それには理由がありますか?私の考えでは、それは初期化されていない値と見なすことができるので、2番目のケースでエラーをスローする必要がある場合は、値が初期化されていない場合はエラーをスローする必要があります。
int i; // error
int i = 6; // okay
何か考えがありますか、それともこれは重複した質問ですか? 私はあなたの助けに感謝します。