Стандарт или для чего нужен return 0 ? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Нужна помощь в понимании. Например есть всем известная программа
#include <stdio.h>
 
int main()
{
    printf("Hello world!\n");
    return 0;
}
Для чего нужен

return 0

в таких случаях ? Например в небезызвестной книге

Б. Кешиган, Д. Ритчи (язык программирования С)

этот пример буз return. Мне учитель говорил что мол надо. Вот вроде линк на стандарт, где используется return 0. http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf В общем, поясните мне пожалуйста, зачем возвращать ничего в туда, где это не ждут ?

Решение задачи: «Стандарт или для чего нужен return 0 ?»

textual
Листинг программы
nameless@nameless-desktop:~$ cat > foo.c
int main()
{
    return 0;
}
nameless@nameless-desktop:~$ gcc foo.c
nameless@nameless-desktop:~$ ./a.out && echo "retcode = $?"
retcode = 0
nameless@nameless-desktop:~$ cat > foo.c
void main()
{}
nameless@nameless-desktop:~$ gcc foo.c
nameless@nameless-desktop:~$ ./a.out && echo "retcode = $?"
nameless@nameless-desktop:~$ ./a.out || echo "retcode = $?"
retcode = 180
nameless@nameless-desktop:~$ ./a.out || echo "retcode = $?"
retcode = 180
nameless@nameless-desktop:~$ ./a.out || echo "retcode = $?"
retcode = 196
nameless@nameless-desktop:~$ ./a.out || echo "retcode = $?"
retcode = 36
nameless@nameless-desktop:~$

Объяснение кода листинга программы

  1. Программа на языке C, написанная в текстовом редакторе, сохранена в файле foo.c.
  2. Компиляция программы в исполняемый файл с помощью gcc foo.c.
  3. Запуск исполняемого файла с помощью ./a.out.
  4. Команда return 0; в функции main() предназначена для успешного завершения работы программы.
  5. Переменная retcode используется командой echoretcode = $?`` для получения кода возврата программы.
  6. Изменение объявления функции main() на void main() приводит к ошибке компиляции.
  7. Команда echoretcode = $?`` выводит код возврата программы в консоль.
  8. Исполняемый файл a.out может быть запущен с помощью команды ./a.out.
  9. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  10. Команда echoretcode = $?` выводит значение переменнойretcode`, которая не определена в скрипте.
  11. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  12. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  13. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  14. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  15. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  16. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  17. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  18. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  19. Значение кода возврата программы не равно 0, если программа завершилась неудачно.
  20. Значение кода возврата программы не равно 0, если программа завершилась неудачно.

Оцени полезность:

9   голосов , оценка 4.667 из 5
Похожие ответы