|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
||||||
Зачем в C++ функция main()?31.08.2021, 09:15. Показов 5351. Ответов 28
Метки нет (Все метки)
Есть такой вопрос, для чего нужен main() если функции в конструкторе класса выполняются раньше, чем код main?
В смысле, обязательный код выполняется в последнюю очередь?
0
|
||||||
| 31.08.2021, 09:15 | |
|
Ответы с готовыми решениями:
28
Функция main функция main() |
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,069
|
|||||||||
| 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
|
||
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,069
|
||||||||
| 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
|
|||
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,069
|
||||||
| 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() и ситаксические ошибки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|