3 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
準(zhǔn)確地說(shuō)是編譯器為可執(zhí)行文件加上了一個(gè)啟動(dòng)例程,ELF頭部的入口地址就指向該啟動(dòng)例程,然后在啟動(dòng)例程中有下面一句:80482fc: e8 c3 ff ff ff call 80482c4 <__libc_start_main@plt>通過(guò)它調(diào)用C庫(kù)的_libc_start_main,再調(diào)用我們的main由于main函數(shù)是被啟動(dòng)例程調(diào)用的,所以從main函數(shù)return時(shí)仍返回到啟動(dòng)例程中,main函數(shù)的返回值被啟動(dòng)例程得到,如果將啟動(dòng)例程表示成等價(jià)的C代碼(實(shí)際上啟動(dòng)例程一般是直接用匯編寫(xiě)的),則它調(diào)用main函數(shù)的形式是:exit(main(argc, argv));

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
執(zhí)行start()這個(gè)該函數(shù)唄;
看這個(gè)函數(shù)風(fēng)格一概是寫(xiě)程序的人自幾定義的,叫這個(gè)名字的函數(shù)一般都是初始化一些參數(shù)、分配一些內(nèi)存什么的準(zhǔn)備工作。
c/c++內(nèi)部定義的一些函數(shù)的話都會(huì)以_開(kāi)頭,類(lèi)似于_start()這種。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
程序編寫(xiě)者自己定義的函數(shù)。打開(kāi)該函數(shù)的代碼窺窺就明白它的功能和表示的意思。
- 3 回答
- 0 關(guān)注
- 1003 瀏覽
添加回答
舉報(bào)