void main()和main的区别

来源:百度知道 编辑:UC知道 时间:2024/05/15 07:34:27
程序如下,很基础啊,刚学的,大家别笑
#include <stdio.h>
#include <math.h>
main()
{
int n,i,k,h=0,leap=1;
for(n=2;n<=30000;n++)
{
k=(int)sqrt((double)n);
for(i=2;i<=k;i++)
if(n%i==0) {leap=0;break;}
if(leap)
{
printf("%6d",n);
h++;
if(h%10==0) printf("\n");
}
leap=1;
}
}
用visual可以编译出来,没有错误,但总会提示warning C4508: 'main' : function should return a value; 'void' return type assumed,,,,究竟什么时候要用void main(),什么时候可以省略void????????
别人说什么main()是返回INT型的,具体是什么意思~~不懂。。。。我里面的程序不是只有INT型的吗???为什么还要提示用void main()

那我写的这个代码到底要不要加void还是别的什么

标准C++要求main有int型返回值,标识程序正常结束
int main() 对应 return 0;(return 一个整形值)

在C中允许void main()即main()无返回值

C++标准虽然不允许 main为void型,但是在一些编译器比如VC6上允许main为void型,
头文件申明为#include<iostream.h>(C++中.h的头文件是对C的支持,使非模板化的)

如果学C++还是写成int main()好一点

很多编译器对main函数是否声明为void总是忽略不计的。早期的C的函数默认是int类型,并且对未声明的函数是否返回数据并不进行检测。C++里为达到描述的一致性,要求所有的函数都必须声明类型,对无类型声明的沿用C的习惯,但对int类型要求有返回值,否则会引发警告。
对于要求main必须位int类型,是为了进程调度的需要,便于操作系统进行出错处理(这点对UNIX尤为重要)

你的程序 没有返回值(return)吧?

main的定义其实跟一般的函数是一样的,有参数,有返回类型。
当没有给main设置返回类型,缺省返回int。
在标准C里定义的main,是长得像这样的:
int main(int argc, char* argv[])

argc 是参数的个数
argv是参数组

其实java也是这样的

默认为int型的,返回一个整型值
void空类型,无返回值