Цитата(Alex03 @ Aug 8 2007, 12:29)

Ну и ещё crt инициализирует кучу, для С++ вызывает конструкторы глобальных объектов,
Что касается "кучи", то тут как и во многих других случаях используется тот грязный трюк, что
всё попавшее в bss изначально обнулено. И используется "ленивая" инициализация по первому вызову
соответствующей функции. Это для варианта с newlibc, у IAR не знаю. Вообще "куча" для работы C[++]
программ не обязательна...
Цитата
а после main соответствующие деструкторы.
Какой, к чёрту, выход из встраеваемой программы...
Цитата
Видимо тамже может быть вызов функций по списку сгенерённому вызовами atexit(). и т.д.
Это из exit() должно вызывается (входит в состав lic), в который следует попадать в т.ч. после выхода из main(),
после чего положено звать _exit(). Но -- см. выше.