其他分享
首页 > 其他分享> > c – main函数可以有默认参数值吗?

c – main函数可以有默认参数值吗?

作者:互联网

如何为主函数参数设置默认值,如用户定义的函数?

解决方法:

好吧,该标准没有说禁止main有默认参数,并说你已成功合并编译器同意你的意思

#include <iostream>

const char *defaults[] = { "abc", "efg" };

int main(int argc = 2, const char **argv = defaults)
{
    std::cout << argc << std::endl;
}

Live example.它没有任何错误或警告编译,仍然没用;徒劳的实验.它几乎总是打印1.

每次调用程序时,比方说,没有参数(或任何数量的参数),argc设置为1,argv [0]指向程序名称,所以这样做是没有意义的,即这些变量永远不会离开因为默认值永远不会被使用,所以没有触及因此有默认值.

因此,通常使用局部变量来实现这样的事情.像这样

int main(int argc, char **argv)
{
    int const default_argc = 2;
    char* const default_args[] = { "abc", "efg" };
    if (argc == 1)   // no arguments were passed
    {
       // do things for no arguments

       // usually those variables are set here for a generic flow onwards
       argc = default_argc;
       argv = default_args;
    }
}

标签:c,arguments,main,default-value
来源: https://codeday.me/bug/20190825/1716287.html