主要功能有三个参数

时间:2014-02-21 16:08:27

标签: c

我之前遇到过这样的函数:

int main(int argc, char **argv, char **argw){


}

为什么需要三个参数,这实际上是如何工作的?

2 个答案:

答案 0 :(得分:7)

main的第三个参数通常称为envp

int main(int argc, char **argv, char **envp) {

许多编译器为main提供了第三个参数,但它没有在C标准中指定,因此使用它是未定义的行为。如果您尝试将代码移植到不提供第三个参数的平台,则程序很可能会失败。

Is char *envp[] as a third argument to main() portable

答案 1 :(得分:0)

我之前见过这些论点。在C ++代码中启动时,我的编译器也将它们放在那里。我可以告诉你一个事实,它在C ++中不是必需的,虽然我不能在C中肯定地说。它们看起来是要传递给函数int main的变量的插槽。其中一种是int,另外两种是char。这些变量通常由用户在程序执行时传入。