Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.95
Andrey040601
4 / 4 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
#1

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

21.08.2014, 22:41. Просмотров 4303. Ответов 41
Метки нет (Все метки)

Есть ли смысл возвращать значение переменной в main()?
Если да - зачем?
C++
1
2
3
4
5
6
7
8
9
#include<iostream>
using namespace std;
 
int main()
{
 int a;
cin >> a;
return a;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2014, 22:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос В чём смысл return в main()? (C++):

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;}
Препод мне доказывает, что void в main`е писать неправильно, а объяснить не...

Использование return в main
Если возвращаем 0 то это означает что прога норм завершилась, иначе значит были...

`main' must return `int'
Почему возникает такая ошибка? И я правильно программу написал? Она должна...

Ошибка main' must return 'int'
Line 6: error: '::main' must return 'int' compilation terminated due to...

Ошыбка File1.cpp(29): E2467 'main()' cannot return a value
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #define pi 3.14159 ...

Dynamic_cast и static_cast: в чём смысл?
Здравствуйте! Подскажите пожалуйста... В теории, как я понял, dynamic_cast...

41
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
22.08.2014, 02:21 #21
Цитата Сообщение от StasyanKO Посмотреть сообщение
о программировании микроконтроллеров, встречал void main()
правильно, возврата то ведь не будет
о чем и речь
Цитата Сообщение от Toshkarik Посмотреть сообщение
There are some exceptions where void main() is allowed, but these are on specialised systems only.
А в плюсах запрещено, нет такой лазейки

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

Не по теме:

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

3
Toshkarik
1148 / 865 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
22.08.2014, 02:21 #22
Цитата Сообщение от StasyanKO Посмотреть сообщение
что следует, но не написано, что это обязательно.
Написано, что должна быть ( shall be ).
2
MrGluck
Модератор
Эксперт CЭксперт С++
8022 / 4865 / 1425
Регистрация: 29.11.2010
Сообщений: 13,251
22.08.2014, 02:22 #23
По стандарту С++ нельзя, в С допускается.

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

По стандарту С++ (ещё 98) допускается return 0; опускать, в этом случае компилятор при завершении последней операции из функции main посчитает, что программа отработала корректно и возвратит 0 как сигнал успешного завершения.
1
Alexandr_1982
179 / 79 / 30
Регистрация: 04.11.2013
Сообщений: 409
Записей в блоге: 4
22.08.2014, 04:27 #24
В ОС UNIX есть трубки (pipes). Return в main передает значение следующей программе, вызываемой по последовательности в трубке. Трубка создаётся средствами shell (командного интерпретатора ОС)
0
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
22.08.2014, 05:12 #25
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
В ОС UNIX есть трубки (pipes).
s/трубки/каналы/
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
Return в main передает значение следующей программе, вызываемой по последовательности в трубке.
А вот с этого момента поподробнее. Канал всего лишь объединяет stdout одного процесса c stdin другого.
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
Трубка создаётся средствами shell (командного интерпретатора ОС)
Только частный случай (если брать конвейер cmd1 | cmd2 | cmd3). В общем случае - любым процессом с пом. системного вызова pipe.
0
intern
15 / 15 / 8
Регистрация: 30.03.2014
Сообщений: 74
Завершенные тесты: 2
22.08.2014, 06:46 #26
Цитата Сообщение от Etien Посмотреть сообщение
Код возврата main() попадает в систему, по моему в какую-то системную переменную, из которой его можно увидеть другой программой.
Windows - echo %ERRORLEVEL%
*nix - echo $?
0
Справлюсь
23 / 23 / 14
Регистрация: 24.07.2014
Сообщений: 209
23.08.2014, 10:03 #27
ребята, давайте обратимся к учебнику, смотрим любой раздел любой главы после заголовка "Уроки по программированию на языке Си++", какой там тип возращаемого значения у функции main?
0
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
23.08.2014, 10:14 #28
Справлюсь, предлагаю обращаться не к сомнительным учебникам, а к достоверным книгам (Страуструп) или к стандарту, выдержку из которого уже приводили в теме: http://www.cyberforum.ru/post6539175.html
1
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
23.08.2014, 10:16 #29
Цитата Сообщение от Справлюсь Посмотреть сообщение
ребята, давайте обратимся к учебнику
Учебник - это, конечно, прекрасно Но тут такие холивары иногда (1, 2), бывает, на (почти что) пустом месте начинаются, что хоть как-то спасает цитирование стандарта и книжек создателя C++, да и то не всегда.

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

Не по теме:

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

1
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
23.08.2014, 10:16 #30
Цитата Сообщение от gru74ik Посмотреть сообщение
Учебник - это, конечно, прекрасно
При условии, что учебник современный, качественный и прочее. В том архиве везде void main().
1
gru74ik
23.08.2014, 10:19
  #31

Не по теме:

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

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

если это только в Си++11 то я буду вам благодарен (у меня новая винда 8 и Си++ 2010 её не тянут по этому если предупредите конечно буду) но мне тут говорили категорически, типа нигде не использовать.
0
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
23.08.2014, 11:12 #34
Цитата Сообщение от Справлюсь Посмотреть сообщение
(надеюсь 2010 это не привет из девяностых)
оттуда оттуда
исчо с четвертой студии, раньше не застал, да и были ли они, у мелкомягких один компилятор и для Си и для плюсов, посему и язык у них суржик смесь обоих языков
а понадобится перкомпилировать на чистом плюсовом компиляторе и все, приплыли
у них даже scanf нестандартная функция до 2010 предупреждение, потом ошибка

Добавлено через 2 минуты
Цитата Сообщение от Справлюсь Посмотреть сообщение
C++ Expres 2010
Visual Studio, а в ней язык Visual C
1
Справлюсь
23 / 23 / 14
Регистрация: 24.07.2014
Сообщений: 209
23.08.2014, 12:29 #35
короче понял я тот нещасный обладатель компилятора который воспринимал мой бред и учебника в котором этот бред написан(хотя что тут удивительного мне ж их в одной папке дали)(это не ирония).
0
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
23.08.2014, 19:35 #36
Цитата Сообщение от ValeryS Посмотреть сообщение
с четвертой студии, раньше не застал, да и были ли они
Были. Лично работал на MSVC 1.5 и MSVC 2.2.

По памяти, стоили примерно на порядок меньше Borland'а и во столько же раз были хуже. IMHO, на что-то пригодным MSVC стал только с пятой версии (когда переманил группу разработчиков из Borland).
1
Убежденный
Ушел с форума
Эксперт С++
15941 / 7252 / 1176
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
23.08.2014, 19:57 #37
Цитата Сообщение от ValeryS Посмотреть сообщение
и язык у них суржик смесь обоих языков
а понадобится перкомпилировать на чистом плюсовом компиляторе и все, приплыли
В Visual C++ давно есть опция /Za (Disable Language Extensions).
Щелк - и "неправильный" код не будет компилироваться.
3
ValeryS
Модератор
7134 / 5402 / 669
Регистрация: 14.02.2011
Сообщений: 18,227
23.08.2014, 20:39 #38
Цитата Сообщение от gazlan Посмотреть сообщение
на что-то пригодным MSVC стал только с пятой версии
не работал
4.0 у меня была какая то битая, или я не умел еще пользоваться
так что серьезная работа началась с 6.0
Цитата Сообщение от Убежденный Посмотреть сообщение
Щелк - и "неправильный" код не будет компилироваться.
А неправильный это Си или плюсы?
0
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
23.08.2014, 20:51 #39
Цитата Сообщение от ValeryS Посмотреть сообщение
4.0 у меня была какая то битая

Не по теме:

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

0
Убежденный
Ушел с форума
Эксперт С++
15941 / 7252 / 1176
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
23.08.2014, 21:59 #40
Цитата Сообщение от ValeryS Посмотреть сообщение
А неправильный это Си или плюсы?
Под неправильным кодом имелось в виду "void main()" в С++, например.
0
23.08.2014, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 21:59
Привет! Вот еще темы с решениями:

В чём смысл использования указателей на функции
Собсно,я не могу понять,в чём смысл использования указателей на функции,ведь...

int main() и его return(узнать код завершения программы в cmd)
Доброе утро всем. Вопрос таков. Если в конце программы мы поставим ретерн 15(а...

Как работает и в чём смысл побитового И в заданном фрагменте кода?
Как то раз в просторах сети нашёл вот такую запись. fun ((x + y) &amp; 1); Где в...

Я новичок создаю программу подскажите в чём смысл ошибок???? что-то с библиотекой glut ?
Создаю программу моделирование гравитации ) выдавало ошибку что нет библиотеки...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru