Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
24 / 6 / 3
Регистрация: 06.12.2015
Сообщений: 303
1

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;}

09.12.2016, 21:17. Показов 4167. Ответов 7
Метки нет (Все метки)

Препод мне доказывает, что void в main`е писать неправильно, а объяснить не может почему. Кто расскажет?)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2016, 21:17
Ответы с готовыми решениями:

В чем разница между int main(){} и int main(void){}?
Только недавно начал изучать язык, и появилось несколько вопросов: 1) в чем разница между int...

Какой новые синтаксис: int main() VS. void main()
Долго не занимался программированием , но тут жена решила поучится , да и сам повторить ,так вот...

Какая разница между int main и void main?
какая разница между (int main) i (void main)?

Чем отличается int main от void main?
Мне нравится int main можно её всегда использовать а про void main забыть?

7
Эксперт С++
1597 / 929 / 777
Регистрация: 06.02.2016
Сообщений: 2,414
Записей в блоге: 29
09.12.2016, 21:25 2
Вот
1
Миниатюры
Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;}  
802 / 532 / 157
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
09.12.2016, 21:34 3
Peoples, это что за книга?
0
Эксперт С++
1597 / 929 / 777
Регистрация: 06.02.2016
Сообщений: 2,414
Записей в блоге: 29
09.12.2016, 21:36 4
Ferrari F1, Джосаттис Н.М. - Стандартная библиотека C++. Справочное руководство - 2014. Просто кладезь информации
1
24 / 6 / 3
Регистрация: 06.12.2015
Сообщений: 303
09.12.2016, 21:37  [ТС] 5
Но вес же пишут и void main(){}, вот не пойму для чего тогда это надо?
0
Don't worry, be happy
17170 / 10053 / 1935
Регистрация: 27.09.2012
Сообщений: 25,045
Записей в блоге: 1
09.12.2016, 22:06 6
Цитата Сообщение от Mnemonik39 Посмотреть сообщение
а объяснить не может почему
Потому что того требует стандарт языка.
Цитата Сообщение от Mnemonik39 Посмотреть сообщение
Но вес же пишут и void main(){}
Стандарт не запрещает компиляторам такое поддерживать,
но при этом код теряет переносимость.
Компиляторы должны обязательно поддерживать только две версии main:
C++
1
2
int main() {}
int main(int, char**) {}
т.е.
C++
1
2
int main() {} //должен поддерживаться реализацией компилятора
void main() {} //реализация не обязана такое поддерживать
0
Любитель чаепитий
3586 / 1686 / 519
Регистрация: 24.08.2014
Сообщений: 5,704
Записей в блоге: 1
09.12.2016, 22:49 7
Цитата Сообщение от 3.6.1.2
An implementation shall not predefine the main function. This function shall not be overloaded. It shall
have a return type of type int, but otherwise its type is implementation-defined. All implementations shall
allow both of the following definitions of main:
int main() { /* ... */ }
and
int main(int argc, char* argv[]) { /* ... */ }
In the latter form argc shall be the number of arguments passed to the program from the environment
in which the program is run. If argc is nonzero these arguments shall be supplied in argv[0]
through argv[argc-1] as pointers to the initial characters of null-terminated multibyte strings (ntmbs
s) (17.5.2.1.4.2) and argv[0] shall be the pointer to the initial character of a ntmbs that represents the
name used to invoke the program or "". The value of argc shall be non-negative. The value of argv[argc]
shall be 0. [ Note: It is recommended that any further (optional) parameters be added after argv. — end
note ]

Не по теме:

То чувство, когда вспомнил пункт стандарта, а не поиском нашёл. :D

1
С чаем беда...
Эксперт CЭксперт С++
9145 / 4664 / 1268
Регистрация: 18.10.2014
Сообщений: 10,517
09.12.2016, 23:14 8
Цитата Сообщение от Mnemonik39 Посмотреть сообщение
Но вес же пишут и void main(){}, вот не пойму для чего тогда это надо?
void main() не пишут. А если кто-то это делает - то только по незнанию. Компилятор может и разрешать void main() в качестве рсаширения (как он может разрешать и вообще что угодно), но к стандартным языкам С и С++ это никакого отношения не имеет. В С и С++ main должна всегда возвращать int.

Что же касается "для чего тогда это надо"... Любители void main() иногда пытаются оправдывать эту манеру тем, что в таком случае нет необходимости писать return 0 в конце функции - это якобы экономит лишнюю строчку кода. На самом же деле даже в int main() писать return 0 в конце функции совсем не нужно - языки С и С++ гарантируют, что main все равно автоматически вернет 0.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 23:14

int main() или int main(void)?
чем отличается : не сообщаю о наличии аргументов функция не принимает никаких аргументов.......

Void main or Int main
Как правильнее использовать void или int в main? И обязательно возвращать return 0 в конце...

От void main() к int main()
Ребят, недавно начал обучаться программированию на cpp на Windows. Перешёл на Mac ( Да, знаю, что...

int main() VS void main()
Вот товарищ Герберт Шилдт считает, что функция main() должна вид int main() { return 0; }...


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

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

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