大家知道main函式的定義為int main(int argc, char **argv),并沒有int main(int argc, wchar_t **argv)版本的main函式。那如何向main函式傳遞寬字串作為引數呢?實踐中直接傳遞好像也不會出錯,那這倒底是如何實作的呢?希望大神解惑。
uj5u.com熱心網友回復:
帶引數的main函式,一般寫成這種格式:main(int argc,char *argv[]),第一個形參argc是一個整型變數,第二個形參argv是一個指標陣列。main()函式是由系統呼叫的,他的兩個引數是由命令列中包含命令名和需要傳給main函式的引數,一般形式為:命令名 引數1 引數2...引數n 。main函式的引數傳遞規律是這樣的,main函式第一個形參argc是指命令列中引數的個數,也就是表示命令列中字串的總個數(如:命令名 引數1 引數 2 ,這時argc = 3),命令列的第一個字串“命令名”的地址傳給指標陣列argv[0],也就是使argv[0]指向字串"命令名",argv[1]指向字串“引數1,argv[2]指向字串“引數2”,依次類推。char *argv[]是指標陣列,利用指標陣列作為main函式的形參,可以向程式傳送命令列引數(這些引數是字串),這些字串的長度事先并不知道,而且各引數字串的長度也并不相同,命令列引數的數目也是可以任意的。uj5u.com熱心網友回復:
應該是RTL啟動代碼呼叫main之前決議了命令列引數,針對編譯選項是unicode還是ANSI,做對應的轉換再傳給main轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/241123.html
標籤:基礎類
上一篇:activiti作業流 我用zip方式部署流程 為什么只存入了部署資訊表
下一篇:C語言學習問題
