Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/46: Рейтинг темы: голосов - 46, средняя оценка - 4.83
2 / 2 / 1
Регистрация: 09.02.2011
Сообщений: 49
1

Функция main. Является ли она точкой старта программы?

09.02.2011, 00:56. Показов 8855. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно, вопрос уже поднят..
Желательно аргументировать хоть как-то свой ответ, или дать ссылку на интернет ресурс, литературу, где это объясняется\обсуждается.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2011, 00:56
Ответы с готовыми решениями:

Целая функция с устранимой особой точкой является константой
Подскажите, пожалуйста, верны ли мои рассуждения. Функция целая => функция имеет только одну...

Почему функция Main по умолчанию является статической?
Почему функция Main по умолчанию является статической? И если поменять её на public, то программа...

Является ли полной функция, образует ли она базис
Помогите прошу Является ли полной функция? Образует ли она базис? Добавлено через 3 минуты Вот...

Стартовая функция main это Си-шная вещь или виндовская? Она придумана создателями языка Си или Майкрософтом?
Хочу понять все программы на Си содержат стартовую функцию main или только те которые написаны для...

13
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
09.02.2011, 00:59 2
основная функция программы, в любом учебнике можно найти
0
Эксперт С++
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,880
09.02.2011, 01:01 3
Функция main() является точкой входа в программу в стандартной С/С++ программе.

Цитата Сообщение от DiabloRossi Посмотреть сообщение
где это объясняется\обсуждается
а что именно интересует?
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
09.02.2011, 01:19 4
физически точкой входа в программу является _WinMainCRTStartup/_mainCRTStartup ( в винде во всяком случае )
ос вызывает ее для инициализации стандартной библиотеки - создания глобальный потоков, глобальных объектов и всего остального
уже оттуда вызываются WinMain/main
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12457 / 7481 / 1753
Регистрация: 25.07.2009
Сообщений: 13,759
09.02.2011, 01:52 5
Цитата Сообщение от DiabloRossi Посмотреть сообщение
дать ссылку на интернет ресурс
ссылка на интернет ресурс
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
09.02.2011, 02:42 6
На сколько помню то кажись у всех программ точка входа начинается с адреса 00401000
0
2 / 2 / 1
Регистрация: 09.02.2011
Сообщений: 49
09.02.2011, 10:25  [ТС] 7
Дело вот в чем, была дискуссия с одним парнем в универе, он говорил, что точкой входа в программу(откуда программа на С++ начинает работу) является функция main, wmain..
Я же говорил, что он ошибается, и программа начинает работу не оттуда..
Но я говорил не то чтобы по знаниям, а чисто интуитивно..
Подошел препод и дал задание найти, откуда начинает работу прога на С++
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
09.02.2011, 15:00 8
DiabloRossi, ну а как же гугл?
в зависимости от того как программа была скомпанована будет вызываться либо
WinMain/main - для случая когда нет поддержки юникода и в командную строка передается как набор ascii символов
если была скомпанована с поддержкой юникода, то будет вызвана wWinMain / wmain, в качестве параметров ей будет передана строка из wchar_t символов
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
09.02.2011, 21:29 9
DiabloRossi, ты прав.
Разумеется программа начинает работу не c функции main().
Предварительно выполняется некоторый код, который много чего делает
и который в конце запускает main().
Когда функция main() завершается то этот код использует результат функции main() и кое-что делает еще.

В зависимости от ОС, компилятора, опций сборки код будет разный.
0
4770 / 2580 / 892
Регистрация: 29.11.2010
Сообщений: 5,581
09.02.2011, 21:52 10
Побрюзжу.

Функция main не может являться точкой входа по определению функции. А вот адрес этой функции (указатель на функцию) может.
0
2 / 2 / 1
Регистрация: 09.02.2011
Сообщений: 49
09.02.2011, 22:16  [ТС] 11
Цитата Сообщение от odip Посмотреть сообщение
DiabloRossi, ты прав.
Разумеется программа начинает работу не c функции main().
Предварительно выполняется некоторый код, который много чего делает
и который в конце запускает main().
Когда функция main() завершается то этот код использует результат функции main() и кое-что делает еще.

В зависимости от ОС, компилятора, опций сборки код будет разный.
А можно хотя бы пару примеров, для оси Windows и любого компилятора..
Чтобы хотя бы понять примерно структуру работы.
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
09.02.2011, 23:05 12
http://lmgtfy.com/?q=c%2B%2B+main+example
http://lmgtfy.com/?q=c%2B%2B+%... de+example
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.02.2011, 05:42 13
А ты хоть в курсе, что под идентификаторами функций как раз адреса точек входа в сами функции и скрываются?
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
10.02.2011, 08:25 14
Лучший ответ Сообщение было отмечено как решение

Решение

DiabloRossi, берете следующую "программу":
C++
1
2
3
int main() {
  return 0;
}
Ставите в main точку останова. Когда выполнение на ней остановится - смотрите стек вызовов.
3
10.02.2011, 08:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2011, 08:25
Помогаю со студенческими работами здесь

Дана функция z=f(x,y). Показать, что она является решением дифференциального уравнения
Направьте на путь истинный. Z=cos(x^2 + y^2) dz/dx + y*d^2z/dxdy - x*d^2z/dy^2 = 0 Помогите...

Функция введенную букву проверяет, является ли она гласной или согласной
Помогите пожалуйсто сделать следующую задачку: Функция введенную букву проверяет, является ли...

Asus x201e (x202e main board rev. 2.0) нет старта
принесли нэтбук после другого сервисного. Нашел пробитый по плате видно что меняли мосфет...

Клавиатура не работает (только при загрузке Windows, до старта ОС она функционирует)
Проблема такая. Нашел клаву. Модель - HP pr1101u. Причем питание и контакт с компом есть, ибо при...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru