Форум программистов, компьютерный форум CyberForum.ru

В чём смысл return в main()? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.95
Andrey040601
 Аватар для Andrey040601
2 / 2 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
21.08.2014, 22:41     В чём смысл return в main()? #1
Есть ли смысл возвращать значение переменной в main()?
Если да - зачем?
C++
1
2
3
4
5
6
7
8
9
#include<iostream>
using namespace std;
 
int main()
{
 int a;
cin >> a;
return a;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
22.08.2014, 02:21     В чём смысл return в main()? #21
Цитата Сообщение от StasyanKO Посмотреть сообщение
о программировании микроконтроллеров, встречал void main()
правильно, возврата то ведь не будет
о чем и речь
Цитата Сообщение от Toshkarik Посмотреть сообщение
There are some exceptions where void main() is allowed, but these are on specialised systems only.
А в плюсах запрещено, нет такой лазейки

Добавлено через 50 секунд

Не по теме:

Toshkarik, синхронно пишем

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
22.08.2014, 02:21     В чём смысл return в main()? #22
Цитата Сообщение от StasyanKO Посмотреть сообщение
что следует, но не написано, что это обязательно.
Написано, что должна быть ( shall be ).
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
22.08.2014, 02:22     В чём смысл return в main()? #23
По стандарту С++ нельзя, в С допускается.

Возвращаемое значение программы может быть использовано другими программами для того, чтобы узнать результат работы выполненной.

По стандарту С++ (ещё 98) допускается return 0; опускать, в этом случае компилятор при завершении последней операции из функции main посчитает, что программа отработала корректно и возвратит 0 как сигнал успешного завершения.
Alexandr_1982
Нарушитель
175 / 71 / 17
Регистрация: 04.11.2013
Сообщений: 383
Записей в блоге: 4
22.08.2014, 04:27     В чём смысл return в main()? #24
В ОС UNIX есть трубки (pipes). Return в main передает значение следующей программе, вызываемой по последовательности в трубке. Трубка создаётся средствами shell (командного интерпретатора ОС)
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
22.08.2014, 05:12     В чём смысл return в main()? #25
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
В ОС UNIX есть трубки (pipes).
s/трубки/каналы/
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
Return в main передает значение следующей программе, вызываемой по последовательности в трубке.
А вот с этого момента поподробнее. Канал всего лишь объединяет stdout одного процесса c stdin другого.
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
Трубка создаётся средствами shell (командного интерпретатора ОС)
Только частный случай (если брать конвейер cmd1 | cmd2 | cmd3). В общем случае - любым процессом с пом. системного вызова pipe.
intern
 Аватар для intern
15 / 15 / 6
Регистрация: 30.03.2014
Сообщений: 67
Завершенные тесты: 1
22.08.2014, 06:46     В чём смысл return в main()? #26
Цитата Сообщение от Etien Посмотреть сообщение
Код возврата main() попадает в систему, по моему в какую-то системную переменную, из которой его можно увидеть другой программой.
Windows - echo %ERRORLEVEL%
*nix - echo $?
Справлюсь
 Аватар для Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
23.08.2014, 10:03     В чём смысл return в main()? #27
ребята, давайте обратимся к учебнику, смотрим любой раздел любой главы после заголовка "Уроки по программированию на языке Си++", какой там тип возращаемого значения у функции main?
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.08.2014, 10:14     В чём смысл return в main()? #28
Справлюсь, предлагаю обращаться не к сомнительным учебникам, а к достоверным книгам (Страуструп) или к стандарту, выдержку из которого уже приводили в теме: В чём смысл return в main()?
gru74ik
Модератор
 Аватар для gru74ik
3122 / 1348 / 167
Регистрация: 20.02.2013
Сообщений: 3,866
Записей в блоге: 18
23.08.2014, 10:16     В чём смысл return в main()? #29
Цитата Сообщение от Справлюсь Посмотреть сообщение
ребята, давайте обратимся к учебнику
Учебник - это, конечно, прекрасно Но тут такие холивары иногда (1, 2), бывает, на (почти что) пустом месте начинаются, что хоть как-то спасает цитирование стандарта и книжек создателя C++, да и то не всегда.

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
предлагаю обращаться не к сомнительным учебникам, а к проверенным книгам (Страуструп) или к стандарту
Синхронно пишем ))

0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.08.2014, 10:16     В чём смысл return в main()? #30
Цитата Сообщение от gru74ik Посмотреть сообщение
Учебник - это, конечно, прекрасно
При условии, что учебник современный, качественный и прочее. В том архиве везде void main().
gru74ik
23.08.2014, 10:19
  #31

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
При условии, что учебник современный, качественный и прочее.
Ну это Липпман (2014) тогда.

ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
23.08.2014, 10:20     В чём смысл return в main()? #32
Цитата Сообщение от Справлюсь Посмотреть сообщение
ребята, давайте обратимся к учебнику,
Давайте
только в твоем учебнике я не нашел ни выходных данных, ни автора
и первая же листинг что я нашел содержит грубейшую ошибку
C++
1
2
3
4
#include <iostream>
using namespace std;
void main()
{
в плюсах main обязана возвращать значение
так что не учебники, их тоже люди пишут, а стандарт
стандарт это закон
а закон как известно:"dura lex, sed lex" "закон суров, но это - закон"
Справлюсь
 Аватар для Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
23.08.2014, 10:47     В чём смысл return в main()? #33
Цитата Сообщение от ValeryS Посмотреть сообщение
и первая же листинг что я нашел содержит грубейшую ошибку
почемуже в C++ Expres 2010(извените если неправильно выразился) которым многе сейчас прекрасно пользуются все идеально работало?(надеюсь 2010 это не привет из девяностых)

если это только в Си++11 то я буду вам благодарен (у меня новая винда 8 и Си++ 2010 её не тянут по этому если предупредите конечно буду) но мне тут говорили категорически, типа нигде не использовать.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
23.08.2014, 11:12     В чём смысл return в main()? #34
Цитата Сообщение от Справлюсь Посмотреть сообщение
(надеюсь 2010 это не привет из девяностых)
оттуда оттуда
исчо с четвертой студии, раньше не застал, да и были ли они, у мелкомягких один компилятор и для Си и для плюсов, посему и язык у них суржик смесь обоих языков
а понадобится перкомпилировать на чистом плюсовом компиляторе и все, приплыли
у них даже scanf нестандартная функция до 2010 предупреждение, потом ошибка

Добавлено через 2 минуты
Цитата Сообщение от Справлюсь Посмотреть сообщение
C++ Expres 2010
Visual Studio, а в ней язык Visual C
Справлюсь
 Аватар для Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
23.08.2014, 12:29     В чём смысл return в main()? #35
короче понял я тот нещасный обладатель компилятора который воспринимал мой бред и учебника в котором этот бред написан(хотя что тут удивительного мне ж их в одной папке дали)(это не ирония).
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
23.08.2014, 19:35     В чём смысл return в main()? #36
Цитата Сообщение от ValeryS Посмотреть сообщение
с четвертой студии, раньше не застал, да и были ли они
Были. Лично работал на MSVC 1.5 и MSVC 2.2.

По памяти, стоили примерно на порядок меньше Borland'а и во столько же раз были хуже. IMHO, на что-то пригодным MSVC стал только с пятой версии (когда переманил группу разработчиков из Borland).
Убежденный
Системный программист
 Аватар для Убежденный
14213 / 6228 / 988
Регистрация: 02.05.2013
Сообщений: 10,385
Завершенные тесты: 1
23.08.2014, 19:57     В чём смысл return в main()? #37
Цитата Сообщение от ValeryS Посмотреть сообщение
и язык у них суржик смесь обоих языков
а понадобится перкомпилировать на чистом плюсовом компиляторе и все, приплыли
В Visual C++ давно есть опция /Za (Disable Language Extensions).
Щелк - и "неправильный" код не будет компилироваться.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
23.08.2014, 20:39     В чём смысл return в main()? #38
Цитата Сообщение от gazlan Посмотреть сообщение
на что-то пригодным MSVC стал только с пятой версии
не работал
4.0 у меня была какая то битая, или я не умел еще пользоваться
так что серьезная работа началась с 6.0
Цитата Сообщение от Убежденный Посмотреть сообщение
Щелк - и "неправильный" код не будет компилироваться.
А неправильный это Си или плюсы?
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
23.08.2014, 20:51     В чём смысл return в main()? #39
Цитата Сообщение от ValeryS Посмотреть сообщение
4.0 у меня была какая то битая

Не по теме:

Она у всех была "битая". В 5-ой, наконец, появилось дерево проекта. 6-ка - это "рабочая лошадь".

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 21:59     В чём смысл return в main()?
Еще ссылки по теме:

Ошыбка File1.cpp(29): E2467 'main()' cannot return a value C++
Dynamic_cast и static_cast: в чём смысл? C++
C++ В чём смысл использования указателей на функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Убежденный
Системный программист
 Аватар для Убежденный
14213 / 6228 / 988
Регистрация: 02.05.2013
Сообщений: 10,385
Завершенные тесты: 1
23.08.2014, 21:59     В чём смысл return в main()? #40
Цитата Сообщение от ValeryS Посмотреть сообщение
А неправильный это Си или плюсы?
Под неправильным кодом имелось в виду "void main()" в С++, например.
Yandex
Объявления
23.08.2014, 21:59     В чём смысл return в main()?
Ответ Создать тему
Опции темы

Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru