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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 299, средняя оценка - 4.76
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

int main() или int main(void)? - C++

04.04.2010, 14:32. Просмотров 40362. Ответов 21
Метки нет (Все метки)

Показать, что функция не принимает никаких аргументов можно с помощью void. В языке С++ (не в С) принятно, что пустые скобки равнозначны void. (В языке С пустые скобки означают что вы ничего не собщаете о наличии аргументов )
чем отличается :
не сообщаю о наличии аргументов
функция не принимает никаких аргументов.......
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2010, 14:32     int main() или int main(void)?
Посмотрите здесь:
В чем разница между int main(){} и int main(void){}? C++
Какой новые синтаксис: int main() VS. void main() C++
Какая разница между int main и void main? C++
C++ В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.?
C++ Использование int или void в качестве возвращаемого типа для main()
C++ Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;}
C++ Void main or Int main
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.04.2016, 21:13     int main() или int main(void)? #21
VityaNiko, черновик стандарта языка программирования C от 12 апреля 2011 года:
5.1.2.2.1 Program startup
The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters:
C
1
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):
C
1
int main(int argc, char *argv[]) { /* ... */ }
or equivalent; or in some other implementation-defined manner.
То, о чём вы говорите - это как раз
some other implementation-defined manner
Но какая именно это "implementation-defined manner", не указывается, так что я вполне могу написать реализацию, в которой функция main принимает и 10 формальных параметров, но от этого такой вариант в стандарте не появится. Так что стандарт определяет только два возможных прототипа, остальное - особенность реализации конкретного компилятора.

Добавлено через 6 минут
Упс, мы же в разделе C++. Правда, там всё точно так же (пункт 3.6.1.2, в подпунктах 3.6.1.2.1 и 3.6.1.2.2 как рз указаны варианты, которые реализация должна предоставлять).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2016, 21:30     int main() или int main(void)?
Еще ссылки по теме:
int main() VS void main() C++
C++ От void main() к int main()
int main() и int _tmain(int argc, _TCHAR* argv[]) C++
Что и почему дописать в int main() чтобы функция void вернула значение C++
C++ Подскажите пожалуйста с int main(int argc, char*argv[])

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17471 / 5709 / 363
Регистрация: 30.03.2009
Сообщений: 15,679
Записей в блоге: 26
17.04.2016, 21:30     int main() или int main(void)? #22
Цитата Сообщение от VityaNiko Посмотреть сообщение
Хэй, а почему забыли envp?
Его нет в стандарте. envp постфактум передают под линуксом, но не факт, что на других системах такой код заработает
Yandex
Объявления
17.04.2016, 21:30     int main() или int main(void)?
Ответ Создать тему
Опции темы

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