在 C 和 C++ 中定义 main() 函数的正确(最有效)方法是什么 --- int main() 或 void main() 为什么?论点又如何?如果 int main() 那么 return 1 或 return 0 ?
这个问题有很多重复,包括:
- C 的
main()函数的有效签名是什么? main()函数的返回类型void main()和int main()之间的区别?main()在 C++ 中的签名main()的正确声明是什么? — 对于 C++,确实有一个很好的答案。main()C 中函数的样式main()C 中方法的返回类型int main()与void main()在 C
有关的:
- C++ —
int main(int argc, char **argv) - C++ —
int main(int argc, char *argv[]) char *envp[]作为main()的第三个参数是可移植的吗?int main()函数必须在所有编译器中返回一个值吗?- 为什么 C 和 C++ 中的
main()函数的类型留给用户定义? - 为什么
int main(){}编译? main()在 C++14 中的合法定义?
原文由 Joel 发布,翻译遵循 CC BY-SA 4.0 许可协议
main的返回值表示程序是如何退出的。正常退出由来自main的 0 返回值表示。非零返回表示异常退出,但对于如何解释非零代码没有标准。正如其他人所指出的,void main()被 C++ 标准禁止,不应使用。有效的 C++main签名是:和
这相当于
还值得注意的是,在 C++ 中,
int main()可以不带返回语句,此时默认返回 0。对于 C99 程序也是如此。return 0;是否应该省略还有待商榷。有效的 C 程序主签名的范围要大得多。效率不是
main功能的问题。根据 C++ 标准,它只能进入和离开一次(标记程序的开始和终止)。对于 C,允许重新输入main(),但应避免。