int类型的main函数为什么有时可以没有返回值也可以运行,而有时必须有呢?

C/C++,注意我问的是int类型的main函数啊,为什么啊,不是int类型的main函数吗,VC++6.0啊

按照ANSI C89/99的标准,main函数只有下面两种形式是符合标准的
int main(void) 如果main没有参数,那么括号内必须写void
{
/*=====代码=====*/
return 0;
}

int main(int argc, char *argv[])
{
/*====代码=========*/
return 0;
}
因为返回类型是int类型的,所以必须要有返回值
规定返回0 的作用: 当这个进程进程执行完之后,提供一个返回值给操作系统。用于操作系统后面的一些处理。
你看的很多教材上main函数的写法比较多,编译的确没有问题,但是不推荐。
这是因为编译器考虑到很多方面的因素、并没有完全按照标准的要求实现。所以保留了这些用法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-24
饿,这个我不知道了,网上看了下,有的说可能是编译器的问题,反正尽量按标准写吧
写上int main 写上return 0;
第2个回答  2013-01-24
什么语言?如果是弱类型的语言,0/false/void是可以通用的,除非===做强制判定。
第3个回答  2013-01-24
C语言?规定语言返回一个值,通常返回0,但是用visual c 6.0的时候将main定义为void也可以不返回值追问

但是有的时候不加返回值会报错,有时只是警告,什么时候必须加呢?我用的vc++6.0

追答

我也遇到过同样的问题,int main最好还是加一个return 0;吧,加了肯定没错

相似回答