#include <stdio.h>
int input();
int inputRep(int);
int reply(int msg) {
int rep = inputRep(msg);
if (msg > 0) return rep;
}
void main(void) {
int ch = input(), ans;
if (ch < 10)
ans = reply(ch);
else
ans = reply(10);
printf("The answer is %d.",ans);
}
В этом примере, в первой ветви if
оператор, значение ch
можно разделить на две области значений:
ch < = 0
: Для вызова функции reply(ch)
, нет возврата значения.
ch > 0
и ch < 10
: Для вызова функции reply(ch)
, существует возврат значение.
Поэтому проверка Return value not initialized возвращает оранжевую ошибку reply(ch)
.
Коррекция - Возвращаемое значение для всех входовОдной из возможных коррекций является возврат значения для всех входов к reply()
.
#include <stdio.h>
int input();
int inputRep(int);
int reply(int msg) {
int rep = inputRep(msg);
if (msg > 0) return rep;
return 0;
}
void main(void) {
int ch = input(), ans;
if (ch < 10)
ans = reply(ch);
else
ans = reply(10);
printf("The answer is %d.",ans);
}