Vla*_*cow 6

从C标准(5.1.2.2.1程序启动)

1程序启动时调用的函数名为main.Ť 他执行没有声明原型实现此功能.它应该使用int的返回类型定义,并且没有参数:

int main(void) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

或者有两个参数(这里称为argc和argv,虽然可以使用任何名称,因为它们是声明它们的函数的本地名称):

int main(int argc, char *argv[]) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

等价物; 10)或其他一些实施定义的方式.

虽然有些编译器例如MS VS的编译器支持函数main的声明和返回类型void但是这样的声明不是函数main的C标准声明.

因此,实现声明函数main的原型没有,如果函数main没有调用任何其他函数,则不需要头文件.

你可以写

int main( void )
{
}
Run Code Online (Sandbox Code Playgroud)

return语句也可以省略.

注意是定义函数main的用户.所以在上面提出的程序中,有一个函数main的定义,它在其体内不包含任何语句.该函数不执行任何操作,并立即将控件返回到托管环境.

  • 非常重要的隐含假设是,任何不了解独立环境和托管环境之间差异的人 - 因此甚至不考虑在问题中提及它 - 都是使用后者. (3认同)