Форум программистов, компьютерный форум 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. Просмотров 41223. Ответов 21
Метки нет (Все метки)

Показать, что функция не принимает никаких аргументов можно с помощью void. В языке С++ (не в С) принятно, что пустые скобки равнозначны void. (В языке С пустые скобки означают что вы ничего не собщаете о наличии аргументов )
чем отличается :
не сообщаю о наличии аргументов
функция не принимает никаких аргументов.......
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2010, 14:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос int main() или int main(void)? (C++):

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

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

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

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.

Использование int или void в качестве возвращаемого типа для main() - C++
Когда использовать int main, а когда void main?

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Евгеныч
0 / 0 / 0
Регистрация: 16.08.2011
Сообщений: 10
20.08.2011, 21:44 #16
ForEveR пасиб учту)))
0
-=ЮрА=-
Заблокирован
Автор FAQ
21.08.2011, 16:19 #17
Цитата Сообщение от ForEveR Посмотреть сообщение
void foo();
может принимать любое кол-во параметров.
а функция void foo(void);
параметров не принимает
А если так, то не примет переменную в качестве косвенного параметра?

C++
1
2
3
4
5
int some_param = 5;
void foo(void)
{
     printf("%d",some_param);
}
0
asics
21.08.2011, 16:35
  #18

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
в качестве косвенного параметра?
Какой автор и в какой книге применяет такую терминилогию к глобалным переменным ?

2
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,001
21.08.2011, 16:35 #19
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
А если так, то не примет переменную в качестве косвенного параметра?
Косвенным параметром названа глобальная переменная? "Примет" конечно же, только на параметры и их передачу это как-то не тянет.
1
VityaNiko
2 / 2 / 2
Регистрация: 19.12.2012
Сообщений: 28
17.04.2016, 20:44 #20
Цитата Сообщение от silent_1991 Посмотреть сообщение
в стандарте описано всего две перегруженных функции main
Хэй, а почему забыли envp?
C++
1
int main(int argc, char *argv[], char *envp[]) {...}
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.04.2016, 21:13 #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 как рз указаны варианты, которые реализация должна предоставлять).
1
Evg
Эксперт CАвтор FAQ
17809 / 6019 / 388
Регистрация: 30.03.2009
Сообщений: 16,535
Записей в блоге: 26
17.04.2016, 21:30 #22
Цитата Сообщение от VityaNiko Посмотреть сообщение
Хэй, а почему забыли envp?
Его нет в стандарте. envp постфактум передают под линуксом, но не факт, что на других системах такой код заработает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2016, 21:30
Привет! Вот еще темы с ответами:

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

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

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

int main() и int _tmain(int argc, _TCHAR* argv[]) - C++
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include "stdafx.h" int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.04.2016, 21:30
Ответ Создать тему
Опции темы

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