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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 66, средняя оценка - 4.95
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
#1

Товарищи, мне уже надоела запись "void main()" - C++

08.12.2008, 22:23. Просмотров 8290. Ответов 15
Метки нет (Все метки)

http://www.research.att.com/~bs/bs_faq2.html#void-main
Прочитайте пожалуйста. Может усвоите для себя что-либо. И перестанете наконец писать "void main()"
Для тех, кому лень идти по ссылке вот копипаст под катом
Can I write "void main()"?
Can I write "void main()"?

The definition void main() { /* ... */ }
is not and never has been C++, nor has it even been C. See the ISO C++ standard 3.6.1[2] or the ISO C standard 5.1.2.2.1. A conforming implementation accepts int main() { /* ... */ }
and int main(int argc, char* argv[]) { /* ... */ }
A conforming implementation may provide more versions of main(), but they must all have return type int. The int returned by main() is a way for a program to return a value to "the system" that invokes it. On systems that doesn't provide such a facility the return value is ignored, but that doesn't make "void main()" legal C++ or legal C. Even if your compiler accepts "void main()" avoid it, or risk being considered ignorant by C and C++ programmers. In C++, main() need not contain an explicit return statement. In that case, the value returned is 0, meaning successful execution. For example:
#include<iostream>

int main()
{
std::cout << "This program returns the integer value 0\n";
}
Note also that neither ISO C++ nor C99 allows you to leave the type out of a declaration. That is, in contrast to C89 and ARM C++ ,"int" is not assumed where a type is missing in a declaration. Consequently: #include<iostream>

main() { /* ... */ }
is an error because the return type of main() is missing.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2008, 22:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Товарищи, мне уже надоела запись "void main()" (C++):

Error C2084: функция "void mehanizm:print(void)" уже имеет текст реализации - C++
Добрый день, я столкнулся с проблемой вывода элемента на экран, выбивает: &quot;error C2084: функция &quot;void mehanizm::print(void)&quot; уже имеет...

Исправить ошибку "C2562: 'main': 'void' function returning a value" - C++
Привет программистам. Не могу разобраться с ошибкой &quot;C2562: 'main': 'void' function returning a value&quot;. Помогите чем можете. #include...

Ошибка компиляции: error C2562: main: функция типа "void" - C++
Возникла проблема, при компиляции выдает ошибку &quot;1&gt;c:\users\user\documents\visual studio 2012\projects\lab1\lab1\lab1.cpp(30): error C2562:...

не получается передать массив из "void Vvod" в "void CalculatingEstimates" - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void CalculatingEstimates(int Pp,Stydent mas); void Vvod(); struct...

Ошибка при компиляции In function"int main()"; expected ';', before "cin", [Build Error] [main.o] Error 1 - C++
Книга &quot;Основы программирования на C++ том 1&quot;(Стэнли Б.Липпман). Приводится пример кода. #include &lt;iostream&gt; #include &lt;string&gt; using...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

15
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,389
09.12.2008, 10:20 #2
Ну, что ж ты хочешь? Как их учат в институте, так они и пишут.... Преподы ведь пишут так - и студентов тому же учат.
0
Роман_
3 / 3 / 0
Регистрация: 23.11.2008
Сообщений: 23
09.12.2008, 12:42 #3
Спасибо теперь будем знать . не нам реально так объясняют в инсте что поделаешь...
0
ROBOT
0 / 0 / 0
Регистрация: 25.11.2008
Сообщений: 33
09.12.2008, 15:14 #4
я никогда так не писал
0
OkunevDen
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 4
10.10.2013, 15:58 #5
А можно такой вопрос: В чём различие между "int main()" или "void main()"?
Я всегда писал "int main()", но вот сегодня ради интереса взял в библиотеке своего колледжа учебник по программированию на языке С++... Читал читал... И везде этот треклятый "void main(void)"...
Я, если честно, в полнейшем замешательстве...
Пытался заменить "свой" "int main()" на это "чудо", но компилятор ошибку выдаёт...
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
10.10.2013, 16:03 #6
OkunevDen, void main() это нестандартно. Программа должна возвращать код завершения в операционную систему. В С++ если нету return в функции main неявно возвращается 0.
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
10.10.2013, 16:04 #7
Любая программа должна возвращать код ошибки, или 0 если ошибок не было.
0
XRuZzz
Антикодер
681 / 583 / 29
Регистрация: 15.09.2012
Сообщений: 2,531
10.10.2013, 16:09 #8
да да конечно все студенты, которые заходят сюда за решениями, так сразу взяли и прочитали вашу тему тем более по английски.
они свои то темы с трудом читают
0
Блондинка с ОЗМ
Заблокирован
10.10.2013, 16:12 #9
1. Ну, переходите на Visual Studio-2010 и выше. Она сама пишет как надо.
2. А почему нас должно волновать, надоело вам или нет? Нам надо, чтоб работало. Работает. А эмоции незнакомого мужика нам неинтересны.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
10.10.2013, 16:12 #10

Не по теме:

XRuZzz, будьте поуважительнее к мертвецам.



Цитата Сообщение от ForEveR Посмотреть сообщение
void main() это нестандартно
А зачем ее продолжают поддерживать?
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
10.10.2013, 16:17 #11
SatanaXIII, gcc не поддерживает. clang не поддерживает. Остальные не знаю.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
10.10.2013, 16:19 #12
ForEveR, перефразирую - зачем ее тогда вообще вводили?
0
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,389
10.10.2013, 16:24 #13
Давным-давно дело было.... Еще со времен Си (без плюсов) Кернигана и Ричи тянется этот хвост. А поддерживают пока еще - для обратной совместимости. Чтобы можно было компилировать код, написанный еще при царе Горохе :-)
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
10.10.2013, 16:26 #14
SatanaXIII, Можно тут почитать например: http://stackoverflow.com/questions/5...296593#5296593
1
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
10.10.2013, 16:30 #15
CheshireCat, но некроцитата утверждает, что и в си без плюсов не было.

ForEveR, пойду читать.
0
10.10.2013, 16:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2013, 16:30
Привет! Вот еще темы с ответами:

Error C2440: инициализация: невозможно преобразовать "void *" в "listnode *". подскажите, что можно сделать? - C++
#include &lt;iostream&gt; struct listnode { char *data; int value; struct listnode *next; }; struct listnode...

Вывести на экран фразу "Мне n лет", учитывая что при некоторых значениях n слово "лет" надо заменить на "год" - C++
дано натуральное число n. Вывести на экран фразу &quot;Мне n лет&quot;, учитывая что при некоторых значениях n слово &quot;лет&quot; надо заменить на &quot;год&quot; или...

Error C2440: =: невозможно преобразовать "void *" в "Node *" - C++
Почему ошибка? error C2440: =: невозможно преобразовать &quot;void *&quot; в &quot;Node *&quot; #include &lt;stdio.h&gt; #include &lt;ctype.h&gt; #include...

LNK2019: ссылка на неразрешенный внешний символ "void __cdecl run(void)" (?run@@YAXXZ) в функции _wmain - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;cmath&quot; using namespace std; class A { private : double *x; double...


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

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

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