C語言中的main函數以及main函數是如何被調用的
阿新 • • 發佈:2017-07-24
連接 命令 c程序 指定 www blog nbsp 程序 編譯器
main函數是C語言中比較特殊的函數,C程序總是從main函數開始執行,main函數的原型是:
1 int main(int argc, char *argv[]);
其中argc是命令行參數的個數,argv是指向參數的各個指針所構成的數組。
當內核執行C程序時(使用一個exec函數),在調用main前先調用一個特殊的啟動例程(什麽鬼?)。可執行程序文件將此啟動例程指定為程序的起始地址——這是由連接編輯器設置的,而連接編輯器則是由C編譯器調用。啟動例程從內核取得命令行參數和環境變量值,然後為按上述方式調用main函數做好安排。
大概的過程就是如下圖所示了:
http://blog.csdn.net/sxh741/article/details/54970085這個鏈接中講的還挺清楚的
http://www.cnblogs.com/findumars/p/6417932.html講的是C++的main函數執行之前的做的事情
1、先來看一個簡單的C程序(simple.c)作為例子講解
2、編譯
gcc -o simple simple.c
3、查看可執行文件的基本信息
objdump -f simple
4、什麽是ELF
5、關於起始地址
C語言中的main函數以及main函數是如何被調用的