私はwhile->の最初のreturnステートメント部分が発生した場合この関数では、whileループの後にreturn文を入れる必要がありますか?ループは依然として継続している間
int myfun(int *a, int *b)
{
while(some condition)
{
if(condition) return *a + *b;
else
{
some manipulation;
}
}
return -1;
}
のような機能は、コントロールがでmyfunを呼び出す関数に行かない持っているか?なぜリターンがある-1声明必要?
実際のコードを入れてみると、この質問は不明です... –
ループ内のreturn文がヒットしたら、関数myfunは直ちに終了します。最後の戻り値は、if文に決して到達しない場合です。この場合、 '* a + * b'は返されず、代わりに何かが返される必要があります。 – LambdaBeta
"何らかの条件"が偽になったときに-1が返されます。多分、データがなくなったでしょう。エラーを示すため-1が通常使用されます。しかし、実際にはポインタのCでは不正な値です。 nullがエラーでない場合、関数はフラグを設定し、代替の無効なポインタを作成しようとはしません。 –