长风习习

C 语言 int main() 和 int main(void) 的区别?

int main(void) 指的是此函数的参数为空,不能传入参数,如果你传入参数,就会出错。

int main() 表示可以传入参数。

// 这样是正确的
int main()
{
  if (0) main(42);
}

// 这样会出错
int main(void)
{
  if (0) main(42);
}

在 C++ 中 int main()int main(void) 是等效的,但在 C 中让括号空着代表编译器对是否接受参数保持沉默。在 C 语言中 main() 省略返回类型也就相当说明返回类型为 int 型,不过这种用法在 C++ 中逐渐被淘汰。虽然 void main()在很多系统都适用,但他毕竟不是标准的,所以应该避免这种用法, 应该使用这种 int main(void) 的写法比较妥当。