问一个c语言的小问题,有经验的回答

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:09:34
为什么老师总是说int main()的定义要比void main的好,我是觉得一样啊,有什么具体的含义么/

int main()指的是运行完了main函数的返回值
在初学阶段,这个返回值是没有作用的

一般可以作为程序有没有成功运行完毕的标志,而且如果出错可以记录出错的类型(0就是正常运行完毕,1,2,3等就是有错误),可以自己设的,不过好像有规范

要写复杂的程序或者要跟踪错误的话就很有必要
把main()设成int还是一个好习惯,虽然现在没用

这样的定义
void main() { /* ... */ }
不是C++,也不是C。(参见ISO C++ 标准 3.6.1[2] 或 ISO C 标准 5.1.2.2.1) 一个遵从标准的编译器实作应该接受
int main() { /* ... */ }和int main(int argc, char* argv[]) { /* ... */ }
编译器也可以提供main()的更多重载版本,不过它们都必须返回int,这个int是返回给你的程序的调用者的,这是种“负责”的做法,“什么都不返回”可不大好哦。如果你程序的调用者不支持用“返回值”来交流,这个值会被自动忽略——但这也不能使void main()成为合法的C++或C代码。即使你的编译器支持这种定义,最好也不要养成这种习惯——否则你可能被其他C/C++程序员认为浅薄无知哦。

在C++中,如果你嫌麻烦,可以不必显式地写出return语句。编译器会自动返回0。例如:
#include<iostream>
int main(){ std::cout << "This program returns the integer value 0\n"; }
麻烦吗?不麻烦,int main()比void main()还少了一个字母呢 :O)另外,还要请你注意:无论是ISO C++还是C99都不允许你省略返回类型。这也就是说,和C89及ARM C++[译注:指Margaret Ellis和Bjarne Stroustrup于1990年合著的《The Annotated C++ Reference Manual》中描述的C++]不同,int并不是缺省返回值类型