char*argv []和int argc C++的全局范围

use*_*310 -1 c c++ variables program-entry-point

我有主要功能: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;
 }
Run Code Online (Sandbox Code Playgroud)

但是编译器会给出错误,即argv是未声明的.如何在其他函数中使用这些变量?

oua*_*uah 6

将它们作为参数传递给您的函数.

int function(int argc)
{
   int b = argc;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

并打电话

function(argc);
Run Code Online (Sandbox Code Playgroud)

main


Max*_*ysh 5

由于您也标记了此内容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;
}
Run Code Online (Sandbox Code Playgroud)