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