Другие языки программирования и технологии

С++.Почему при удачном выходе из ф-ции main() она должна возвращать 0?

Ведь логичнее было бы возвращать 1(true).А false(0) переводится как неправильный, ошибочный.
0 - означает ошибок нет, а не "правильный" и "неправильный".

Вопрос стоит как: "Есть ошибки? " 1 - есть, 0 - нет.
СМ
Стас Мисюга
20 142
Лучший ответ
Потому что в общем случае это результат выполнения функции
0 - ноль ошибок
1 - ошибка номер один
1234 - ошибка номер 1234
ГН
Глеб Новиков
22 045
Если речь идет о bool типе - то да. 0 - это "плохо". А в случае int значение -1 будет "плохо" а не 0. Так принято. Например -1 - ошибка (любая) , 0 - без изменений (все правильно сработало) , больше 0 - уже коды или значения возврата, которые обрабатываются в вызывающей процедуре.
Вообще не парься и пиши void main().
Кто сказал что она должна возвращать 0? И к слову все что меньше либо равно нулю это ошибка, возвращать она может все что угодно это не где не учитываеться
Евгений Панкратов Но во всех книгах и вроде по стандарту ANSI main() должна возвращать 0.Вот я и спрашиваю, почему так.
Функция main() возвращает целое число, которое принимает вызывающий процесс — обычно этим процессом является операционная система. Возврат значения из main() эквивалентен вызову функции exit() с тем же самым значением. Если main() нe возвращает значение явно, то вызывающий процесс получает формально неопределенное значение. На практике же большинство компиляторов С автоматически возвращают 0, но если встает вопрос переносимости, то на такой результат полагаться с уверенностью нельзя.
Потому что ф-ия типа int :

int main() {}

A true false это тип bool

Add#
Кстати она может вообще ничего не возвращать
так принято)
Umed Akilshoev
Umed Akilshoev
552