gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:25:50 24 4
gpt4 key购买 nike

如何像用户定义的函数一样为 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 都会设置为 1argv[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++ - main 函数可以有默认参数值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22551791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com