久久精品国产清自在天天线_日韩国产欧美系列_亚洲天堂影视在线观看_91在线艹亚洲无码午夜_日本写真高清视频免费网站网_亚州无码大尺度另类_高跟翘臀老师后进式视频午夜_久久精品国产亚洲AV热黑人_国产另ts另类人妖_丁香五月 开心五月 激情五月

當(dāng)前位置:IT培訓(xùn) > 華清遠(yuǎn)見教育科技集團(tuán) > 嵌入式學(xué)習(xí) > 講師博文 > C語言main函數(shù)必不可少,一起來了解C語言main函數(shù)
C語言main函數(shù)必不可少,一起來了解C語言main函數(shù)
時(shí)間:2018-04-27作者:華清遠(yuǎn)見

C語言標(biāo)準(zhǔn)在一開始(C90標(biāo)準(zhǔn) 5.1.2條),就規(guī)定了程序的執(zhí)行環(huán)境。對于沒有操作系統(tǒng)的環(huán)境來說,C程序的入口函數(shù)是什么都可以(也就是說的在單片機(jī)的C程序里,或者在操作系統(tǒng)的底層代碼的C入口處,不需要是main函數(shù))。

對于有操作系統(tǒng)的環(huán)境來說(C入門者學(xué)習(xí)C的環(huán)境),C程序的入口是main函數(shù)。而且聲明為以下兩者之一

int main(void);

int main(int argc, char * argv[]);

對于 操作系統(tǒng)的執(zhí)行環(huán)境的具體實(shí)現(xiàn)來說,鏈接器會把“你寫的C程序(以main開頭)”和另外的啟動程序相鏈接,而那些啟動程序里面會引用你寫的main函數(shù)。這樣從程序員的視角來看,“C程序的入口”是main。

但是如果我們要指定我們的程序的入口為mymain 時(shí),在linux下編譯直接出現(xiàn)undefined reference to `main'的錯(cuò)誤

C語言沒說C程序一定要有main()函數(shù)。c的編譯器工作之前先要做cpp(比如頭文件展開)一樣,編譯完了以后還要鏈接成可執(zhí)行文件。鏈接的時(shí)候需要知道程序的入口是什么。不管是什么總歸得有的名字,所以main被選中了。你不喜歡這個(gè)名字,可以指定你自己的入口。

參見如下文檔的 -e 或者--entry參數(shù)。

main函數(shù)就是這個(gè)約定好的用戶代碼默認(rèn)入口

gcc hello.c -e mymain -nostartfiles 編譯后發(fā)現(xiàn)我們的可執(zhí)行文件a.out生成了,并且執(zhí)行是,我們的hello linux也出現(xiàn)了

-e參數(shù)指定我們的程序的入口

-nostartfiles 連接的時(shí)候不使用標(biāo)準(zhǔn)系統(tǒng)的啟動文件


發(fā)表評論

全國咨詢電話:400-611-6270,雙休日及節(jié)假日請致電值班手機(jī):15010390966

在線咨詢: 曹老師QQ(3337544669), 徐老師QQ(1462495461), 劉老師 QQ(3108687497)

企業(yè)培訓(xùn)洽談專線:010-82600901,院校合作洽談專線:010-82600350,在線咨詢:QQ(248856300)

Copyright 2004-2018 華清遠(yuǎn)見教育科技集團(tuán) 版權(quán)所有 ,京ICP備16055225號,京公海網(wǎng)安備11010802025203號

有位老師想和您聊一聊