LINUX.ORG.RU

История изменений

Исправление AKonia, (текущая версия) :

main - самая обычная функция, которая всё так же вызывается, только её отличие в тому, что вызывается она не вами, а само выполнение начинается с функции start(или entry0)(которая настраивает различные плюшки Си++, подготавливает параметры argc, argv для полной версии ф-ии main и делает ещё много чего полезного), которую можете в дизассемблере посмотреть, в целом она настраивает среду, вызвает функции-конструкторы(которые не могут кстати содержать Си++ кода, только Си или ассемблер, эти функции вы можете определить сколько угодно сами, для этого нужно для такой функции указывать соотв аттрибут), затем передаёт управление main - давая отработать непосредственно вашей программе, а затем деструкторы(для них в целом верно всё то же самое, что и для конструкторов). На самом деле до entry0 тоже могут быть функции зачинатели, но это больше от среды и компилятора зависит, как правило start(или entry0) присутствует практически везде, за подробностями я рекомендую посмотреть дизассемблер того же Hello World, например entry0

Исправление AKonia, :

main - самая обычная функция, которая всё так же вызывается, только её отличие в тому, что вызывается она не вами, а само выполнение начинается с функции .start(которая настраивает различные плюшки Си++, подготавливает параметры argc, argv для полной версии ф-ии main и делает ещё много чего полезного), которую можете в дизассемблере посмотреть, в целом она настраивает среду, вызвает функции-конструкторы(которые не могут кстати содержать Си++ кода, только Си или ассемблер, эти функции вы можете определить сколько угодно сами, для этого нужно для такой функции указывать соотв аттрибут), затем передаёт управление main - давая отработать непосредственно вашей программе, а затем деструкторы(для них в целом верно всё то же самое, что и для конструкторов). На самом деле до start тоже могут быть функции зачинатели, но это больше от среды и компилятора зависит, как правило start(или ещё entry0) присутствует практически везде, за подробностями я рекомендую посмотреть дизассемблер того же Hello World

Исходная версия AKonia, :

main - самая обычная функция, которая всё так же вызывается, только её отличие в тому, что вызывается она не вами, а само выполнение начинается с функции .start(которая настраивает различные плюшки Си++, подготавливает параметры argc, argv для полной версии ф-ии main и делает ещё много чего полезного), которую можете в дизассемблере посмотреть, в целом она настраивает среду, вызвает функции-конструкторы(которые не могут кстати содержать Си++ кода, только Си или ассемблер, эти функции вы можете определить сколько угодно сами, для этого нужно для такой функции указывать соотв аттрибут), затем передаёт управление main - давая отработать непосредственно вашей программе, а затем деструкторы(для них в целом верно всё то же самое, что и для конструкторов). На самом деле до start тоже могут быть функции зачинатели, но это больше от среды и компилятора зависит, как правило start присутствует практически везде, за подробностями я рекомендую посмотреть дизассемблер того же Hello World