Стандарт или для чего нужен 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:~$
Объяснение кода листинга программы
- Программа на языке C, написанная в текстовом редакторе, сохранена в файле
foo.c. - Компиляция программы в исполняемый файл с помощью
gcc foo.c. - Запуск исполняемого файла с помощью
./a.out. - Команда
return 0;в функцииmain()предназначена для успешного завершения работы программы. - Переменная
retcodeиспользуется командойechoretcode = $?`` для получения кода возврата программы. - Изменение объявления функции
main()наvoid main()приводит к ошибке компиляции. - Команда
echoretcode = $?`` выводит код возврата программы в консоль. - Исполняемый файл
a.outможет быть запущен с помощью команды./a.out. - Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Команда
echoretcode = $?` выводит значение переменнойretcode`, которая не определена в скрипте. - Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.
- Значение кода возврата программы не равно 0, если программа завершилась неудачно.