你能定义main()来获取多个参数,例如:
int main(int argc1, int argc2, char* argv1[], int* argv2[])
Run Code Online (Sandbox Code Playgroud)
在C中,唯一的可移植定义main是:
int main(void) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
和
int main(int argc, char *argv[]) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
或同等学历.允许使用其他实现定义的表单 - 但正如术语"实现定义"所暗示的那样,只有在您的编译器选择允许它们时才允许它们.
有一些常见的扩展,例如:
int main(int argc, char *argv[], char *envp[]) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
但我怀疑任何编译器都支持你建议的特定形式.我不确定它会如何有用; 现有argc/ argv表单允许任意多个命令行参数.
C++与C略有不同,因为它需要返回类型int; 在C中,编译器可以但不必允许其他返回类型.此外,在C++中()意味着函数没有参数,相当于C的(void).(C++也允许(void)C兼容.)