2013-05-21 57 views
1

我在使用C++編寫代碼時遇到了問題。我在主函數之外使用了int argc,char *argv[],它告訴我他們沒有被定義。
我試圖使用extern但它沒有幫助。 任何人都可以請幫助我嗎?謝謝!如何在C++的主函數之外使用int argc,char * argv []?

extern int __argc; 
extern char **__argv; 
+1

你有什麼目標? – Subhajit

+1

您可以將它們傳遞給函數。 –

+0

爲什麼downvoting這個問題沒有任何評論?網上有很多例子顯示__argc/__ argv的用法,它根本不是一個標準。因此,詢問該主題是正常的,問題是清楚的。 – Klaus

回答

6

嘗試要麼設置一個全局變量,或傳遞的argcargv值到您的函數。

方法1:

int argc; 
char **argv; 

void some_other_function() { 
    std::cout << argv[0] << "\n"; 
} 
int main(int ac, char **av) { 
    argc = ac; 
    argv = av; 
    some_other_function(); 
} 

方法2:

void some_other_function(int argc, char **argv) { 
    std::cout << argv[0] << "\n"; 
} 
int main(int ac, char **av) { 
    some_other_function(argc, argv); 
} 
+0

@taocp WTH是你肆意破壞這個答案嗎? – 2013-05-21 18:52:35

+1

@ H2CO3對不起,我不明白你的意思。我在編輯時是否可能,答案也正在更新?我並沒有打算讓事情變得更糟。 – taocp

+0

@taocp - 現在都很好。你和我正在同時編輯。我*想*我拿起你的改變 - 突出顯示變量名稱,對吧? –

相關問題