С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
#1

Функция main () {} - C++

18.06.2012, 12:09. Просмотров 2218. Ответов 22
Метки нет (Все метки)

Есть разные варианты синтаксиса функции мэйн

1.void main () {}
2. int main () {return 0;}
3. int main() {}
4. main (void) {}
5. int main(int argc,char**argv)
6. int main(int argc,char*argv[])


C++
1
2
3
4
5
#include <iostream>
using namespace std;
bla-bla main (bla-bla) {
system ("pause");
}
Мой вопрос какой синтаксис лучше и чем это все хозяйство отличается
Я где то прочитал что по ИСО надо юзать 2. int main () {return 0;} все остальное пережитки прошлого или что то типа того
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 12:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция main () {} (C++):

функция main() - C++
может ли функция возвращать функцию int z() { ....... //надо типо того сделать return int main(); } void x() {

Функция main - C++
Ребят задание скомпилировать код в командной строке vc++ и запустить программу.Делаю так: c:\...\lab10 cl -GX user.cpp Вот...

Функция main - C++
В одномерном массиве, вводимом с клавиатуры и состоящем из 10 вещественных элементов, вычислить: 1) если задана опция -ko - ...

Функция main с аргументами - C++
Приветствую, подскажите где именно указывать параметры аргументов(int argc, char **argv), если использовать следующий тип записи int...

Функция не видит переменных из main - C++
Составьте программу, которая будет выводить на экран два разных сообщения (например, “Hello, World !” и “Hello, my darling !”),...

Функция main() и ситаксические ошибки - C++
Доброго времени суток. Написал вот такую бредятину штуку: #include &lt;windows.h&gt; #include &lt;cstring&gt; int main(); int a = 3; ...

22
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
18.06.2012, 12:12 #2
Leeto, по стандарту мейн должен возвращать int, а его параметры нужно указывать если работаещь с коммандной строкой
вот наиболее полный вид
C
1
int main(int argc,char *argv[],char *envp[])
1
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
18.06.2012, 12:14 #3
int main () - возращает число, с типом int
void main () - не возвращает вообще, ничего
0
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
18.06.2012, 12:18 #4
Цитата Сообщение от Harmonster Посмотреть сообщение
void main () - не возвращает вообще, ничего
но он запрещен по стандарту
1
kent
Нуб со стажем
36 / 34 / 2
Регистрация: 19.02.2012
Сообщений: 118
18.06.2012, 15:26 #5
int main(int argc,char **argv){return 0;}
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.06.2012, 18:16 #6
Цитата Сообщение от aram_gyumri Посмотреть сообщение
char *envp[]
Нестандартно.
1. Запрещено, ибо main обязан возвращать int
2, 3. - эквивалентны.
4. В с++ не работает правило неявного int, поэтому так писать нельзя.
5, 6 - практически эквивалентны.
1
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
18.06.2012, 19:30 #7
Цитата Сообщение от diagon Посмотреть сообщение
Нестандартно.
почему, он ведь и в никсах и в венде и на маке работает?
1
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.06.2012, 19:40 #8
Цитата Сообщение от aram_gyumri Посмотреть сообщение
почему, он ведь и в никсах и в венде и на маке работает?
Работает, но в стандарте такого нету.
Т.е. компиляторы не обязаны поддерживать этот параметр.
2
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,634
18.06.2012, 20:47 #9
Иногда полезно писать
5. int main(int argc,char**argv)
Например, при работе с OpenGL. Можно использовать аргументы и в других целях.
Обычно пишут int main() в С++ и int main(void) в С.
void main запрещен по стандарту в С++, но С до сих пор разрешает такое объявление для поддержки ранних программ. Если в конце main явно не указать return 0, то она вернет 0 по-умолчанию.
1
tomaticus
47 / 47 / 2
Регистрация: 02.01.2011
Сообщений: 505
18.06.2012, 20:51 #10
MrGluck, с OpenGl работал, и соглашусь, там необходимы
C++
1
int argc,char**argv
А про остальное я не понял. Я спорить не собираюсь, просто спрашиваю у тех, кто хорошо с этим знаком. Написал уже два проекта, один с opengl, второй в консоли. В течении прошлого года, у меня был "быдлокод", все писалось в одной функции. Сейчас уже немного начал прозревать, и сортирую код по функциям, и по *.h. Дак вот вопрос заключается в том, почему нельзя писать :
C++
1
2
3
4
void NextFunction()
{
cout << "Next";
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,634
18.06.2012, 20:59 #11
Просто ввод-вывод в функции считается моветоном (дурной тон). Это делает их применимыми в узком кругу задач, желательно избегать подобных вещей.

Задача функций - работа с данными.
0
tomaticus
47 / 47 / 2
Регистрация: 02.01.2011
Сообщений: 505
18.06.2012, 21:11 #12
т.е. чтобы казаться "кулцпрогеромм" стоит писать :
C++
1
2
3
4
5
int NextFunction()
{
     cout << "Next";
     return 0;
}
а не так :

C++
1
2
3
4
void NextFunction()
{
cout << "Next";
}
?
0
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
18.06.2012, 21:23 #13
tomaticus, нет, правилнее будет так
C++
1
2
3
4
5
6
7
8
9
char *NextFunction()
{
    return "Next";
}
int main()
{
    cout << NextFunction();
    return 0;
}
1
grizlik78
Эксперт С++
1972 / 1465 / 122
Регистрация: 29.05.2011
Сообщений: 3,033
18.06.2012, 21:24 #14
Тогда уж
C++
1
2
3
4
const char *NextFunction()
{
    return "Next";
}
1
tomaticus
47 / 47 / 2
Регистрация: 02.01.2011
Сообщений: 505
18.06.2012, 21:29 #15
Да вы смеетесь?)
0
18.06.2012, 21:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2012, 21:29
Привет! Вот еще темы с ответами:

Не работает функция вывода в main() - C++
вот кусок кода, где не работает первый printf(Rus(&quot;Выбери тип календаря&quot;)); - точнее не выводится в консоли. void main() { int q=0,...

функция main обработка параметров командной строки - C++
Подскажите, пожалуйста, зачем могут использоваться параметры командной строки, пример какой-нибудь если можно, только не конкретный :) без...

Функция main. Является ли она точкой старта программы? - C++
Собственно, вопрос уже поднят.. Желательно аргументировать хоть как-то свой ответ, или дать ссылку на интернет ресурс, литературу, где...

Алгоритм работы функции, когда функция вызывается в main - C++
кто может кратко объяснить?


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

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

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