main函数为什么一定要有返回值么?

如题所述

void main() int main()
{ {
} return 0;
}
这是不需要返回值的; 这是需要返回值的;
至于是用哪种主函数是根据需要来确定的,只要不牵涉程序与程序之间的调用或访问,用哪个无所谓。一般我个人是习惯用有返回值的主函数。追问

返回值有什么用,如果我写 int main 不写return 0 不行吗? retrun 0 从哪里看是返回 个 0?

追答

如果你写int main, 那说明你的主函数类型就是返回整数类型,既然类型已定,那么就必须返回一个整数,也可以不是0. 从哪里看这个0,那就要看你用什么来调用的主函数了,一般是操作系统调用的,也就是说这个0返回给操作系统了。一般你是看不见的哦。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-15
不一定,带返回值可以根据返回值来判断是否正常退出追问

从哪里看 返回值? 比如 return 0

第2个回答  2013-06-16
不需要呀。貌似不需要。。。
第3个回答  推荐于2017-09-23
在 C89(C语言的早期标准)中,main() 是可以接受void返回值的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language(《C 程序设计语言》)用的就是void main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:
int main( void )
int main( int argc, char *argv[] )
当然,我们也可以做一点小小的改动。例如:char *argv[] 可以写成 char **argv;argv 和 argc 可以改成别的变量名(如 intval 和 charval),不过一定要符合变量的命名规则。
如果你不需要从命令行中获取参数,请用 int main( void ) ;否则请用 int main( int argc, char *argv[] ) 。
main 函数的返回值类型必须是 int ,这样返回值才能传递给操作系统。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入 return 0 ,表示程序正常退出。不过,我还是建议你最好在 main 函数的最后加上 return 语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6 不会在生成的目标文件中加入 return 0,大概是因为 vc6 是 98 年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上 return 语句了吧!不过,gcc3.2(Linux 下的 C 编译器)会在生成的目标文件中加入 return 0 。

C++98(C++语言的一个标准)中定义了如下两种 main 函数的定义方式:
int main( )
int main( int argc, char *argv[] )
int main( ) 等同于 C99 中的 int main( void ) ;
int main( int argc, char *argv[] ) 的用法也和 C99 中定义的一样。同样,main 函数的返回值类型也必须是 int 。如果 main 函数的末尾没写 return 语句,C++98 规定编译器要自动在生成的目标文件中加入 return 0 。同样,vc6 也不支持这个特性,但是 g++3.2(Linux 下的 C++ 编译器)支持。
第4个回答  2018-05-13
不需要
main()
省略int 就不需要了,等我搞清楚了来解释下为什么吧
相似回答