關於 C/C++ 入口函數 main() 的參數,「int argc / char **argv」,銘看過的入門書剛開始都選擇跳過解釋這兩個參數,個人猜測是因為還沒有講到 function 概念,所以沒有講,今天看 Windows API 的 example 的時候,發現書上的 example 使用了很大量的 int argc / char **argv,當時在火車上其實我有點納悶這兩個參數,我知道這是一些 IDE 會自行加入的參數,不過沒有太多印象,手邊也沒有網路,只能透過 example 大概知道是再命令列中的附加參數讀取。
到了租屋處後,找了一下資料,初步了解 argc / argv 兩個參數的用途,簡單的說就是可以在外部命令列中加入附加的參數,並且透由 argc / argv 協作讀取使用者填寫的參數。
- int argc // 附加參數數量(同時也是 argv 的大小)
例如有一個程式 shutdown.exe,我在命令列中輸入:
- shutdown.exe -r -t 0
argc 的值會是:4
- char **argv(char ^argv) // 紀錄各個參數。
argv 的大小 = 使用者輸入的參數數目大小。
可以透過:
- argv[i]
方式讀入命令列輸入的參數,延續上面的例子
1 |
|
如果要讀取使用者所有輸入的參數可以:
1 |
|
即可讀到命令列所送進的所有參數。