3 回答
TA贡献1946条经验 获得超4个赞
int main(void);int main(int argc, char* argv[]);
因此, int可以用 typedef定义为 int的类型 argv可以写成 char ** argv等等。
在程序启动时调用的函数名为 main..该实现没有声明此函数的原型。它应定义为返回类型为 int在没有参数的情况下: int main(void) { /* ... */ }
或者有两个参数(在这里称为 argc和 argv(虽然可以使用任何名称,因为它们是声明它们的函数的本地名称): int main(int argc, char *argv[]) { /* ... */ }
或等效;或以其他实现-定义的方式。
如果声明了这些参数,则 main职能应遵守下列限制:
价值 argc应该是非否定的。
argv[argc]将为空指针。
如果 argc大于零,则数组成员 argv[0]贯通 argv[argc-1]包容性应该包含指向字符串的指针,这些指针是由主机环境在程序启动之前给出的实现定义的值。其目的是从宿主环境中的其他地方向程序启动之前确定的程序信息提供。如果主机环境不能同时提供大写字母和小写字母,则实现应确保以小写接收字符串。
如果 argc值大于零,所指向的字符串为 argv[0]表示程序名称; argv[0][0]如果程序名在主机环境中不可用,则为空字符。如果 argc大于1,所指向的字符串由 argv[1]贯通 argv[argc-1]表示程序参数。
参数 argc和 argv和字符串所指向的 argv数组应由程序修改,并在程序启动和程序终止之间保留其最后存储的值。
在一个独立的环境中(在这个环境中,C程序可以在没有操作系统任何好处的情况下执行),在程序启动时调用的函数的名称和类型都是实现定义的。任何可供独立程序使用的库设施,除了第4条所要求的最小设置外,都是实现定义的。
TA贡献1777条经验 获得超3个赞
标准C
5.1.2.2.1启动程序
在程序启动时调用的函数名为 main..该实现没有声明此函数的原型。它应定义为返回类型为 int在没有参数的情况下: int main(void) { /* ... */ }
或者有两个参数(在这里称为 argc和 argv(虽然可以使用任何名称,因为它们是声明它们的函数的本地名称): int main(int argc, char *argv[]) { /* ... */ }
或同等; 9)或者以其他实现定义的方式。 9)
因此, int可以用定义为 int的类型 argv可以写成 char **argv等等。
标准C+
3.6.1主要功能[basic.start.main]
1程序应包含一个称为Main的全局函数,它是程序的指定开始。[.]
2实施不应预定义主要职能。此功能不应超载。它应该有一个int类型的返回类型,但否则它的类型是定义的。所有实现都应允许Main的以下两种定义: int main() { /* ... */ }
和 int main(int argc, char* argv[]) { /* ... */ }
公共延伸
int main(int argc, char **argv, char **envp) { ... }extern char **environ;<unistd.h>.
J.5.1环境论点
在宿主环境中,主函数接收第三个参数, char *envp[],它指向以空结尾的指针数组。 char,每个字符串指向一个字符串,该字符串提供有关此程序执行环境的信息(5.1.2.2.1)。
微软C
main的声明语法是 int main();
或者,可以选择, int main(int argc, char *argv[], char *envp[]);
或者, main和 wmain函数可以声明为返回。 void(无返回值)。如果你宣布 main或 wmain作为返回空,您不能使用返回语句将退出代码返回到父进程或操作系统。若要返回退出代码,请执行以下操作: main或 wmain被宣布为 void,您必须使用 exit功能。
void main()
main()char **envp
wmain()
void main()
是 int main()同 int main(void)?
main()int main()int main(void)int main()
main()
int main()main()int main()int rc = main("absolute", "twaddle", 2):-Werrorint main(void)main()main()main()int main()int main(void)
- 3 回答
- 0 关注
- 739 浏览
添加回答
举报
