же?
но если проверить возвращаемое значение из терминала командой
echo $? (на маке так, на линуксе вроде как то по другому)
то она будет выдавать значения до 256.
если дать больше 255 то пойдет на второй круг.
почему тогда функция называется int?)
На линуксе так же
Тут всё дело в сисколе exit (ну и exit_group), у тебя при завершении функции мейн возвращаемое ей значение кидается в exit, а вот младшие 8 битов статуса доступны родительскому процессу через функции wait (со сдвигом, понятное дело).
то есть по сути если я буду использовать exit() это не будет резким выходом из программы, как если бы использовал два ретерна?
Нет, не будет, там также закроются все потоки, зафлашутся буферы, ну и вызовутся функции atexit/_onexit, а ну и удалятся временные файлы. Немедленный выход это _exit, она как раз не вызывает функции atexit
а в функции же тоже могу использовать exit()? int getInt(int x){ if(x == 0) { exit(1)} … return 0; } тогда зачем используют множественные ретерны если можно пихать везде exit() безопасно?
Можешь, ну множественные ретерны имеют смысл только при дальнейшей работе программы.
то есть если в функции напиш exit() как выше написал, программа и в мейне завершится полность?
Согласно стандарту да
Обсуждают сегодня