|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
||||||
Зачем в C++ функция main()?31.08.2021, 09:15. Показов 5337. Ответов 28
Метки нет (Все метки)
Есть такой вопрос, для чего нужен main() если функции в конструкторе класса выполняются раньше, чем код main?
В смысле, обязательный код выполняется в последнюю очередь?
0
|
||||||
| 31.08.2021, 09:15 | |
|
Ответы с готовыми решениями:
28
Функция main функция main() |
|
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
|||||||||
| 31.08.2021, 15:47 | |||||||||
А теперь представьте, что ваш проект состоит не из одного main.c, а из кучи файлов и библиотек.
0
|
|||||||||
|
Неэпический
|
|||||||
| 31.08.2021, 15:49 | |||||||
|
Внутри рантайма это выглядит как-то так:
0
|
|||||||
|
|
||
| 31.08.2021, 18:24 | ||
|
собственно трасса до системного брейкпоинта ntdll.RtlUserThreadStart -> ntdll.LdrpInitialize -> ntdll._LdrpInitialize -> ntdll.LdrInitSecurityCookie -> ntdll.LdrpInitializeProcess отсюда и начинается исполнение программы - с получения объекта ядра. затем управление возвращается главному модулю в OEP (в mainCRTStartup).
0
|
||
|
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
||||||||
| 31.08.2021, 18:36 | ||||||||
Это если говорить про логическое разделение. Если про разделение на уровне языка Си, то инициализация - все, что до main. Если на уровне языка Ассемблер, то инициализации может не быть вообще. Хотя startup все равно пишут, можно инициализацией его назвать. Добавлено через 8 минут Вот здесь я кое-как описывал как появляется startup файл (уж прошу прощения, что сам на себя ссылаюсь, но быстро не нашел). В приложении микроконтроллера gd32vf103. Если говорить коротко, то стартап настраивает стек, копирует данные инициализации из ПЗУ в ОЗУ, настраивает некоторые регистры, настраивает прерывания и еще кое-что по мелочи. А потом вызывает main как обычную функцию (ну почти обычную, поскольку не ожидает возврата оттуда - контроллер же).
0
|
||||||||
|
|
||||
| 31.08.2021, 18:57 | ||||
|
я не знаю чего вы там обсуждаете, я отвечал ТСу на его вопрос. а т.к. 99% юзеров это винда, то и ответ был по винде. поотлаживайте в ядерном отладчике любой старт РЕ файла как-нить на досуге
0
|
||||
|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
|||
| 31.08.2021, 19:08 [ТС] | |||
|
И да, BIOS/UEFI просто не содержит стандартных заголовков, так что программирование на нём приближено к программированию не то древних ПК, не то ардуино.
0
|
|||
|
4138 / 2716 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
|
||||||
| 31.08.2021, 20:04 | ||||||
|
В отличие от вас, я писал про общее устройство программы на Си, без привязки к какой-то конкретной ОС. Собственно, по ссылке пример вообще без ОС.
0
|
||||||
|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
||
| 31.08.2021, 20:15 [ТС] | ||
|
Не по теме: Я компилирую мой код в ELF. Уже не припомню, когда Linux поддерживал PE файлы.
0
|
||
|
249 / 79 / 31
Регистрация: 29.03.2020
Сообщений: 497
|
|
| 31.08.2021, 22:28 | |
|
0
|
|
| 31.08.2021, 22:28 | |
|
Функция main () {} Функция main Функция main с аргументами Функция не видит переменных из main Функция main() и ситаксические ошибки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|