在c語言中主函數開頭用了start()什么意思
3 回答

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
準確地說是編譯器為可執行文件加上了一個啟動例程,ELF頭部的入口地址就指向該啟動例程,然后在啟動例程中有下面一句:80482fc: e8 c3 ff ff ff call 80482c4 <__libc_start_main@plt>通過它調用C庫的_libc_start_main,再調用我們的main由于main函數是被啟動例程調用的,所以從main函數return時仍返回到啟動例程中,main函數的返回值被啟動例程得到,如果將啟動例程表示成等價的C代碼(實際上啟動例程一般是直接用匯編寫的),則它調用main函數的形式是:exit(main(argc, argv));

富國滬深
TA貢獻1790條經驗 獲得超9個贊
執行start()這個該函數唄;
看這個函數風格一概是寫程序的人自幾定義的,叫這個名字的函數一般都是初始化一些參數、分配一些內存什么的準備工作。
c/c++內部定義的一些函數的話都會以_開頭,類似于_start()這種。
- 3 回答
- 0 關注
- 1005 瀏覽
添加回答
舉報
0/150
提交
取消