您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關main函數怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
main函數,是以C為基礎開發平臺的程序入口點,通常,我們寫程序很少去關注函數main函數參數列表,而是簡單給出下面這種情況。
int main() { system("pause"); return 0; }
打開MSDN,查看main函數,
main( int argc, char *argv[ ], char *envp[ ] )
{
program-statements
}
首先,我們先來看前兩個參數,argc和 argv[ ],這兩個主要是用來描述命令行參數的,但并不能說他們是命令行參數,對一個程序而言,它們表示的是main函數的形參。(有點繞)
舉個例子,打開cmd,如下圖
我們輸入hello.exe,表示這是一個可執行程序,后面我們可以跟上一些參數,-m,2,1等,參數在這里沒有什么實際意義,但如果我們提前寫好了hello.exe,之后我們加上的參數,都是可以獲取到的,那我們這里加上的這些參數,就是所謂的命令行參數,和main函數的參數是兩回事。
那在cmd下可以運行,在外部環境下怎么去設置環境變量呢?
打開VS編譯器,項目----->屬性---->調試
在這里,我們可以提前設置好命令行參數。
argc和argc[ ]就是用來調整這些參數的,它們可以獲取到我們設置的命令行參數
其中,argc表示的是參數的個數,對程序而言,去識別命令行參數時,都是當做字符串來識別,而argv[]是一個字符指針數組,數組的每個元素都是char*類型的,指向的就是我們的命令行參數的各個參數,數組名為argv。
還是上面的例子,我們的argc值為4,而argv[]中共有五個char*類型的元素,分別為"hello.exe","-m","2","1",最后還存放了一個NULL。argc里面是NULL之前的參數個數。
那我們就可以通過數組下標的方式 argv[i] 來訪問到我們的命令行參數的內容,再去實現我們的功能。通常,一般會在程序最開始對argc進行判斷,是否滿足我們接下來要訪問的參數個數,如果小于我們所需最少的參數個數,程序往往會奔潰。
另外需要強調的一點,還是,這幾個參數只是形參,名字并不是固定的,可以去改變它,只是我們通常這樣來理解。
很明顯,我們每次需要實現一個操作,都需要跑到工程----->屬性下面去改命令行參數,這并不是我們想要的,但命令行參數確實是很重要的,這主要體現在cmd環境下。
在cmd環境下找到我們剛剛建的工程,Debug下找到剛剛的可執行程序(后綴為.exe),在它后面跟上我們的參數,點擊回車,參數就會被獲取到,就會出現我們想要的結果。
再舉個簡單的例子,fcopy.exe 是實現文件復制的可執行程序文件,在命令行方式運行fcopy格式:
系統提示符 + fcopy.exe in.dat out.dat
in.dat”和“out.dat”是命令行參數,其中,“in.dat ”和“out.dat”前均可帶盤符和查找路徑。
關于環境變量
簡單地說就是“Path”是一個變量,里面存儲了一些常用命令所存放的目錄路徑。跟DOS的默認路徑相似,當吧目錄添加到Path下之后,運行某些程序時除了在當前文件夾中尋找外,還會到設置的默認路徑中去查找。
比如path, 是告訴系統, 當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時, 系統除了在當前目錄下面尋找此程序外, 還應到哪些目錄下去尋找。
一般情況下,看不出環境變量有什么意義,但學習過Java的應該都知道,eclipse安裝之后是要配置環境變量的,也就是把bin目錄給復制過去,具體是為什么,這里就不多解釋了。環境變量能解決的另一個大問題,就是雙系統的軟件共用問題。例如分別在C盤和D盤安裝win7和xp的系統,但有些軟件卻只在某個系統下安裝,另一個系統下往往不能使用,比較麻煩的辦法就是在另個平臺下再安裝一遍。
為什么在某個系統下安裝的軟件在另外一個系統打不開呢?原因是安裝軟件時往往須要向系統目錄中復制某些文件,而使用另外一個系統時會由于缺少這些文件而無法運行。環境變量則可以很好的解決這個問題。
查看環境變量,可以通過我的電腦-〉屬性-〉高級,來設置系統的環境變量,然而在此設置的環境變量是否在注冊表中具有對應的項呢?答案是肯定的。
感謝各位的閱讀!關于“main函數怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。