Dlaczego domyślna wartość powrotu main wynosi 0, a nie EXIT_SUCCESS?
Standard ISO 1998 c ++ określa, że nie używanie jawnie instrukcji return w głównym jest równoważne użyciureturn 0
. Ale jeśli na przykład implementacja ma inny standardowy kod „bez błędu”-1
?
Dlaczego nie użyć standardowego makraEXIT_SUCCESS
które zostaną zastąpione przez0
lub-1
lub dowolna inna wartość w zależności od implementacji?
C ++ wydaje się wymuszać semantyczną treść programu, co nie jest rolą języka, który powinien opisywać tylko zachowanie programu. Ponadto sytuacja jest inna dla wartości zwracanej „błąd”: tylkoEXIT_FAILURE
jest standardową flagą zakończenia „błędu”, bez wyraźnej wartości, na przykład „1”.
Jakie są przyczyny tych wyborów?