C C 關於main函式的引數的問題

2021-09-05 10:38:03 字數 1213 閱讀 2903

記得我第一次學習c語言的時候我的老師跟我們說,他教的c語言就想中國的樓房一樣,現在講的沒什麼問題,但是在以後章節中我會親手推到我教你們的知識。跟中國的樓房一樣,推到了再建,建好了再推到。

我記得第一次寫main函式的時候是這樣的格式

void main()

這個格式好想是c89的格式,我學習c語言的風格就是從c89標準開始的吧。

後來寫微控制器**main函式風格變了變成了

int main(void)

return 0;

這個好像是c99標準的格式,c語言好像必須有return 0;這個c++似乎不用。現在**結束我還保留著這個習慣,return 0一下。現在c11標準都出來7 8年了,main函式到時沒什麼變化,好像不同動不動return 0一下。但是習慣還是要return 一下。

之前看別人的**就一直有看到

void main(int argc,char * argv)

int main(int argc,char * argv)

主函式帶引數的風格,去看過一些資料,有人說國外程式設計師很喜歡在main函式新增引數,國內的程式設計師不怎麼喜歡在主函式中加引數,個人猜想估計是大學學習的譚浩強的c語言 main函式都沒有引數的原因吧,國外教材估計主函式都有引數的。這個和for迴圈我們喜歡使用變數 i 是一樣的吧。

還有一點我記得以前寫opencv**的時候main函式必須是不帶引數的帶引數的是編譯不過去的。環境是使用win10+vs2017 linux+g++的環境沒有驗證過。

現在學了unix系統程式設計才知道為什麼main函式是需要引數的,在編寫系統**的時候執行二進位制檔案有時是需要帶引數的,比如cp命令,mv命令等等。

main函式引數的秘密:

argc引數是命令列引數的數目,argv是指向引數的哥哥指標所構成的陣列。

以前main函式是有三個引數的那是unix系統的時代,第三個引數是環境表位址。現在ios c規定只有兩個引數了。

舉個栗子:

說明一下main函式的引數的作用。

寫乙個** 複製 01.txt 檔案 

int main(int argc,char *argv)

需要**的出門右拐請參考我的《c/c++複製檔案**的實現》

執行**的時候./a.out 01.txt 02.txt

沒有引數的話只能執行二進位制檔案,main函式有引數的話,可以在執行檔案後面新增引數的。這就是main函式引數的作用,目前我只在系統程式設計中使用過。其他地方還沒有遇到過。

C C 帶引數的main函式

通過win32控制台的main函式的引數,我們可以像使用命令一樣對檔案等資料進行處理 main函式可以不帶引數,也可以帶引數,這個引數可以認為是 main函式的形式引數。c語言規定main函式的引數只能有兩個,習慣上這兩個引數寫為argc和argv。因此,main函式的函式頭可寫為 main arg...

關於main函式的引數

歷史上大多數unix系統支援main函式帶有三個引數 int main int argc,char argv,char env extern char environ 因為iso c規定main函式只有兩個引數,所以posix.1也規定應使用environ而不使用第三個引數。下面的例子展示了main...

20121022研究 main函式的引數問題

看了一些關於main函式的引數的相關的文件,大致總結為以下,以後繼續補充。main函式的引數,一般常用的是兩個引數,argc argument count 和argv argument value 前者是用來存命令列 windows 系統下,關於linux系統的正在研究中 輸入的引數個數的,後者是用...