我有主要功能: main(int argc,char * argv [])。我想在其他函数中使用这些变量: argc,argv :
int function()
int main(int argc, char *argv[])
{
...
function();
...
return 0;
}
int function()
{
int b=argc;
return 0;
}
但是编译器会出错, argv 是未声明的。如何在其他函数中使用这些变量?
答案 0 :(得分:6)
将它们作为参数传递给你的函数。
int function(int argc)
{
int b = argc;
return 0;
}
并致电
function(argc);
main
中的
答案 1 :(得分:3)
当您将此标记为C++
时,您可以执行以下操作:
int argc;
char **argv;
void foo() {
printf("argc: %d\n", argc);
for (int i=0; i < argc; i++)
printf("%s \n", argv[i]);
}
int main(int argc, char **argv)
{
::argc = argc;
::argv = argv;
foo();
return 0;
}
答案 2 :(得分:1)
argc和argv是main的局部变量。您可以将它们作为参数传递给其他函数。例如
int function( int );
int main(int argc, char *argv[])
{
...
function( argc );
答案 3 :(得分:0)
将函数声明为
int function (int argc) {
int b = argc;
....
}
主要调用函数
function(argc);
OR
使用静态变量来存储你的argc和argv,但不建议这样做
之前
int g_argc;
char* g_argv[];
在您的主要功能
中g_argc = argc;
g_argv = argv;
function();
你的函数直接使用g_argc
答案 4 :(得分:0)
另一种选择是使两个全局变量保持与argc和* argv相同的值