Dlaczego „nie wszystkie ścieżki kontrolne zwracają wartość” to ostrzeżenie, a nie błąd?

Próbowałem odpowiedziećto pytanie. Jak sugeruje zaakceptowana odpowiedź, problem z tym kodem polega na tym, że nie wszystkie ścieżki kontrolne zwracają wartość. Wypróbowałem ten kod na kompilatorze VC9, co dało mi ostrzeżenie o tym samym. Moje pytanie brzmi: dlaczego jest tylko ostrzeżenie, a nie błąd? Ponadto, jeśli ścieżka, która nie zwraca wartości, zostanie wykonana, co zostanie zwrócone przez funkcję (Musi coś zwrócić)? Czy jest to po prostu to, co jest na górze stosu, czy też ponownie przeraża niezdefiniowane zachowanie?

questionAnswers(7)

yourAnswerToTheQuestion