编程int main与void main(编程中的第二行是不是有int main()和void main()两种这两种有什么区别吗)

本文目录
编程中的第二行是不是有int main()和void main()两种这两种有什么区别吗
返回值不同,一般使用前者
在C/C++标准中从来没有定义过void main()这样的代码形式,也只有部分编译器才支持这种写法。
在C99标准中规定,main只有以下两种定义方式是正确的:
int main()
int main(int argc, char* argv)
void main()是只有部分编译器(如微软的vc++,vs)支持的特性,如果用gcc编译void main()就会报错了。
有时候你会见到一些权威书籍上写的是main(),没有声明返回值,如果放在现在的编译器上编译是等同于void main()的,但是实际上在C90这类古老的规范中,由于当时C语言还没有那么多类型,只有int,所以写不写无所谓,默认是int main()
main函数的返回值能让操作系统知道程序的状态,返回值为0表示程序正常退出,非0表示程序出现异常
程序a.exe对应的源码为:
int main() {
return 0;
}
程序b.exe对应的源码为:
int main() {
return -1;
}
执行命令 ./a.exe && echo "success"
输出success
执行命令 ./b.exe && echo "success"
无输出
总之,永远不要使用void main()
为什么看到有的书上main是void+main(),而我们课件上是int+main()还有m
这取决于运行环境。对于有操作系统的环境,应用程序一般是需要返回值的,例如写成 int main();对于无操作系统独立运行的应用程序,不需要返回值,void main()。

更多文章:
什么时候用inner join(SQL中,用select语句时,为什么有时候要用inner join,有时候不用啊希望好心人帮忙)
2026年7月15日 12:30
javascript窗口对象是什么(demo是不是javascript的window对象的方法)
2025年9月15日 11:30
dedecmsv6怎样安装模板(dedecms 导入新的模板,模板的css,js等,怎么设置路径)
2025年11月5日 00:30
distinction学位在国内(M.A.with distinction是什么学位)
2025年7月12日 04:15
time clock power loss(电脑显示clockpowerloss还有optionsnot)
2026年1月10日 12:00
在 C语言中字符串的替换如何实现的!?js 字符串 replace 只能替换一个
2025年6月3日 05:30
sleep函数作用(linux 的sleep()、usleep()、nanosleep()函数)
2025年10月3日 01:00
















