c++ - 你能定义 main() 来接收比 argc/argv 参数更多的参数吗?

标签 c++ c

你能定义 main() 接受多个参数吗,例如:

int main(int argc1, int argc2, char* argv1[], int* argv2[])

最佳答案

在 C 中,main 的唯一可移植 定义是:

int main(void) { /* ... */ }

int main(int argc, char *argv[]) { /* ... */ }

或等价物。其他实现定义的形式是允许的——但正如术语“实现定义”所暗示的那样,它们在您的编译器选择允许它们的情况下才被允许。

有一些常用的扩展名,例如:

int main(int argc, char *argv[], char *envp[]) { /* ... */ }

但我怀疑是否有任何编译器支持您建议的特定形式。我不确定它有什么用;现有的 argc/argv 形式允许任意多个命令行参数。

C++ 与 C 略有不同,它要求返回类型为 int;在 C 中,编译器可以但不需要允许其他返回类型。另外,在C++中()表示函数没有参数,相当于C的(void)。 (C++ 还允许 (void) 以实现 C 兼容性。)

关于c++ - 你能定义 main() 来接收比 argc/argv 参数更多的参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139519/

相关文章:

c++ - 如何将 YYYY/MM/DD HH:MM:SS 转换为 std::chrono::system_clock::time_point?

c++ - 从 C/C++ 代码执行 RDMSR 和 WRMSR 指令

c++ - 在 C 项目中使用 C++ 文件

c - 当线程写入重叠时访问 CUDA 中的共享内存

c - 通过网络传输 GetBitmapBits(),安全吗?

c++ - CMake with AUTOMOC 正在删除我的实现

计算将矩阵中与另一个数字相等的数字相加的可能性有多少种

c++ - vector 分配/插入和转换值分配/插入

c++ - 如何将函数作为参数传递?

c++ - 如何声明和初始化二维字符串数组?