版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第C語言中main函數(shù)與命令行參數(shù)詳細(xì)講解目錄一、main函數(shù)的概念二、main函數(shù)的本質(zhì)命令行三、main函數(shù)的參數(shù)四、main函數(shù)一定是程序執(zhí)行的第一個(gè)函數(shù)嗎五、小結(jié)
一、main函數(shù)的概念
C語言中main函數(shù)稱之為主函數(shù)一個(gè)C程序是從main函數(shù)開始執(zhí)行的
二、main函數(shù)的本質(zhì)
main函數(shù)是操作系統(tǒng)調(diào)用的函數(shù)操作系統(tǒng)總是將main函數(shù)作為應(yīng)用程序的開始操作系統(tǒng)將main函數(shù)的返回值作為程序的退出狀態(tài)
下面看一下main函數(shù)的返回值:
A.c:
#includestdio.h
intmain()
printf("I'mA!\n");
return0;
}
B.c:
#includestdio.h
intmain()
printf("I'mB!\n");
return99;
}
在windows下通過VS012命令行編譯代碼,如果對(duì)命令行編譯不熟悉,請(qǐng)看《命令行》,否則跳過該部分
以B.c為例,編譯后通過echo%ERRORLEVEL%命令后,看到返回值為99
下面再來進(jìn)行一個(gè)實(shí)驗(yàn),先將A進(jìn)行編譯,然后輸入B.exeA.exe,發(fā)現(xiàn)只打印出ImB!,因?yàn)锽.exe運(yùn)行結(jié)束后操作系統(tǒng)返回了99,99在操作系統(tǒng)看來B.exe沒有正常運(yùn)行退出,所以操作系統(tǒng)就不會(huì)運(yùn)行A.exe。
如果輸入A.exeB.exe,結(jié)果如下,這是因?yàn)锳.exe運(yùn)行結(jié)束后正常返回0給操作系統(tǒng),所以就會(huì)往下執(zhí)行B.exe
命令行
以下面的代碼為例
test.h:
#ifndef_TEST_H_
#define_TEST_H_
#includestdio.h
classTest
public:
Test(constchar*s)
printf("%s\n",s);
#endif
test.cpp:
#include"test.h"
Testt4("t4");
intmain()
Testt5("t5");
}
t1.cpp:
#include"test.h"
Testt1("t1");
t2.cpp:
#include"test.h"
Testt2("t2");
t3.cpp:
#include"test.h"
Testt3("t3");
第一步,打開VS2012,選擇工具-VisualStudio命令提示
第二步,實(shí)用cd/d進(jìn)入需要編譯的文件夾。(注意換盤符需要輸入/d)
我想要編譯的文件在C:\Users\HuZeQiu\Desktop\demo文件夾里。
輸入cd/dC:\Users\HuZeQiu\Desktop\demo,按下回車鍵,如下,就轉(zhuǎn)到了目的文件夾
第三步,輸入cltest.cppt2.cppt1.cppt3.cpp-otest.exe編譯程序。(cl命令是用來編譯程序)按下回車鍵后開始編譯,生成test.exe可執(zhí)行文件,如下:
第四步,運(yùn)行test.exe,直接輸入test.exe即可,就可以看到運(yùn)行結(jié)果
編譯后的文件夾如下:
三、main函數(shù)的參數(shù)
程序執(zhí)行時(shí)可以向main函數(shù)傳遞參數(shù)
gcc編譯器的常見用法:
下面看一個(gè)main函數(shù)的參數(shù)示例:
#includestdio.h
intmain(intargc,char*argv[],char*env[])
inti=0;
printf("==============Beginargv==============\n");
for(i=0;iargc;i++)
printf("%s\n",argv[i]);
printf("==============Endargv==============\n");
printf("\n");
printf("\n");
printf("\n");
printf("==============Beginenv==============\n");
for(i=0;env[i]!=NULL;i++)
printf("%s\n",env[i]);
printf("==============Endenv==============\n");
return0;
輸出結(jié)果如下:
delphi@delphi-vm:~$gcctest.c
delphi@delphi-vm:~$./a.outa.cb.cc.c==============Beginargv==============./a.outa.cb.cc.c==============Endargv==============
==============Beginenv==============
ORBIT_SOCKETDIR=/tmp/orbit-delphiSSH_AGENT_PID=1781TERM=xtermSHELL=/bin/bashXDG_SESSION_COOKIE=6c560f89cd4609726ff940b800000007-1648713669.66817-1997070498WINDOWID=71303204QTDIR=/usr/local/TrolltechGNOME_KEYRING_CONTROL=/tmp/keyring-ZV2hRjGTK_MODULES=canberra-gtk-moduleUSER=delphiLD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.7.4/lib:/usr/local/Trolltech/qtcreator-2.4.1/lib:LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:SSH_AUTH_SOCK=/tmp/keyring-ZV2hRj/sshDEFAULTS_PATH=/usr/share/gconf/gnome.default.pathSESSION_MANAGER=local/delphi-vm:@/tmp/.ICE-unix/1750,unix/delphi-vm:/tmp/.ICE-unix/1750USERNAME=delphiXDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdgDESKTOP_SESSION=gnomePATH=/usr/local/Trolltech/Qt-4.7.4/bin:/usr/local/Trolltech/qtcreator-2.4.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesQT_IM_MODULE=ximPWD=/home/delphiXMODIFIERS=@im=ibusGDM_KEYBOARD_LAYOUT=cnLANG=zh_CN.utf8GNOME_KEYRING_PID=1731MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.pathGDM_LANG=zh_CN.utf8GDMSESSION=gnomeSHLVL=1HOME=/home/delphiLANGUAGE=zh_CN:zhGNOME_DESKTOP_SESSION_ID=this-is-deprecatedLOGNAME=delphiXDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-k3N1W1OvOx,guid=5f504019e47302c3a7df0e2000000017LESSOPEN=|/usr/bin/lesspipe%sWINDOWPATH=7DISPLAY=:0.0GTK_IM_MODULE=ibusLESSCLOSE=/usr/bin/lesspipe%s%sXAUTHORITY=/var/run/gdm/auth-for-delphi-omqXhW/databaseCOLORTERM=gnome-terminal_=./a.out==============Endenv==============
四、main函數(shù)一定是程序執(zhí)行的第一個(gè)函數(shù)嗎
下面看一個(gè)示例:
#includestdio.h
#ifndef__GNUC__
#define__attribute__(x)
#endif
__attribute__((constructor))
voidbefore_main()
printf("%s\n",__FUNCTION__);
__attribute__((destructor))
voidafter_main()
printf("%s\n",__FUNCTION__);
intmain()
printf("%s\n",__FUNCTION__);
return0;
}
輸出結(jié)果如下:
constructor告訴編譯器在main函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年度滁州市瑯琊區(qū)事業(yè)單位公開招聘工作人員10名筆試模擬試題及答案解析
- 2026天津工業(yè)大學(xué)招聘1人筆試模擬試題及答案解析
- 2026年方大炭素新材料科技股份有限公司招聘78人考試備考試題及答案解析
- 2026西安經(jīng)開第十四小學(xué)音樂教師招聘考試備考試題及答案解析
- 2026浙江寧波市數(shù)據(jù)局直屬事業(yè)單位招聘編外人員1人筆試備考試題及答案解析
- 2026年國際教育合作交流實(shí)務(wù)指南
- 2026年中醫(yī)康復(fù)技術(shù)應(yīng)用培訓(xùn)
- 2026上海師范大學(xué)招聘工作人員筆試備考試題及答案解析
- 2026江蘇蘇州市生物醫(yī)藥產(chǎn)業(yè)集團(tuán)有限公司招聘1人考試備考題庫及答案解析
- 2026年垃圾填埋場的地質(zhì)災(zāi)害風(fēng)險(xiǎn)分析
- 2025江蘇蘇州高新區(qū)獅山商務(wù)創(chuàng)新區(qū)下屬國有企業(yè)招聘9人筆試題庫及答案詳解
- xx市燃?xì)飧脑祉?xiàng)目可行性研究報(bào)告
- 2025年無人駕駛公共交通產(chǎn)品競爭力分析可行性報(bào)告
- 2025年秋季青島版三年級(jí)數(shù)學(xué)上冊求比一個(gè)數(shù)的幾倍多(少)幾的數(shù)教學(xué)課件
- 2025年職業(yè)技能鑒定-冷作工-冷作工職業(yè)技能監(jiān)定(中級(jí))歷年參考題庫含答案解析(5套)
- 專修室設(shè)備采購方案(3篇)
- 新生兒查體步驟及內(nèi)容
- 腺樣體個(gè)案護(hù)理
- 2025至2030鸚鵡馴養(yǎng)繁殖行業(yè)市場發(fā)展現(xiàn)狀及競爭格局與投資價(jià)值報(bào)告
- 湖北煙草專賣局考試題庫2024
- 2025至2030工程監(jiān)理行業(yè)項(xiàng)目調(diào)研及市場前景預(yù)測評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論