C++ C中main函数的第四个参数指向什么?
我们有C++ C中main函数的第四个参数指向什么?,c++,c,arguments,main,C++,C,Arguments,Main,我们有 int main(int argc, char** argv, char** envc) 为了普通人。但是我想知道是否有其他的论点可以代替这些。如果有,它指向什么?只有argc和argv是标准参数。之后的任何操作都取决于您的系统和编译器。好吧,下面是故障: argc--C标准 argv--C标准 env——适用于大多数UNIX和MS Win,但不是标准的 apple——Mac OSX和Darwin作为第四个参数传递的其他信息 我想这回答了你的问题: 答案在C和C++中有所不同:
int main(int argc, char** argv, char** envc)
为了普通人。但是我想知道是否有其他的论点可以代替这些。如果有,它指向什么?只有argc和argv是标准参数。之后的任何操作都取决于您的系统和编译器。好吧,下面是故障:
--C标准argc
--C标准argv
——适用于大多数UNIX和MS Win,但不是标准的env
——Mac OSX和Darwin作为第四个参数传递的其他信息apple
- 我想这回答了你的问题:
答案在C和C++中有所不同:
-
<> > C++ >代码>主< <代码>必须始终返回<代码> int <代码>。每个实现都必须接受
()
和(int,char**)
签名。实现可以接受任何其他签名。如果接受的签名以int、char**、
开头,则这些签名应具有通常的含义。(另外,main
获取C链接,不能重载,不能是模板,也不能调用。)
main
可以采用任何形式。但是,每个实现都必须接受int(void)
和int(int,char**)
类型正如您所注意到的,受某些环境支持并符合这些准则的一个流行签名是
int main(int argc,char*argv[],char*env[])
,其中第三个参数包含指向环境的指针。其他扩展是可以想象的;查看您平台的文档。它是标准的扩展:但它应该提供进入环境的途径:
int main(int argc, char** argv, char** envc)
{
// It is an array of pointers to C-String
// The array is terminated with a NULL pointer.
// So you can loop over with it like this.
for(int loop = 0;envc[loop] != NULL; ++loop)
{
fprintf(stdout, "%s\n", envc[loop]);
}
}
- argc:argv中的有效元素数
- argv:用于命令行参数的C字符串数组李>
- envc:环境的C字符串数组(以NULL指针终止)
getenv
:
char * getenv ( const char * name );
thnaks。帮了我很多忙。我在英特尔x86 Ubuntu 12.04上编译带有任意参数的代码,结果是wierd。再次感谢这些记录,在C独立环境中可能有一个不同于