C++程序中最后一定要有return 0;吗?

在运行程序的时候忘了写return 0; 代码能够运行,但有的时候不能运行,所以一定要在int main(){中添加return 0;}吗?
刚学C++不久,希望巨佬们说白话

这其实涉及到好几个问题
1.在linux系统下,每个程序其实都是有返回值的,返回0代表正常结束,返回非0代表错误代号
而main函数的返回值其实就是整个程序的返回值,这个返回值在dos下没有什么用处
2.在c++和c语言中,即使标记了函数返回值为int,你也可以不写return,函数会有个默认的返回值
有的IDE里默认值是1,有的是你最后一个操作过的变量的值
3.出于良好的编码习惯,尽量减少奇怪的错误的考虑,该加的代码尽量加上,不要胡乱省略

main函数最后的return 0不写也能正常运行,但是否所有编译器都认可,不确定。
建议加上return 0;肯定不会有问题,这也是很好的编码习惯。

可用可不用

必须加,不加就是一个遗留的bug
你不加你的电脑可能能运行但是别人的就不一定了
你加了就都可以运行

关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:C++__return 0是什么意思?
你还可以看下cpp参考手册中的 c++-return

dos下bat里面不用判断errorlevel吗?