return 零;的报错

return 0;的报错
可能这个问题很白痴,可我真的不懂诶。
这个程序:
# include <stdio.h> 
# include <stdlib.h> 
void main () 

int num;
scanf("%d",&num);
char str[25]; 
itoa(num, str, 10); 
printf("The number 'num' is %d and the string 'str' is %s. /n" , num, str); 

如果没有加上return 0;就是对的,加上之后VC6就报错了,这是为什么啊?

------解决方案--------------------
void main () 
因为函数头这里的void是空的意思,就是说明这个叫做main的函数是没有返回值的,而如果你在函数体里加上一句return 0;就表示,到这一步我要退出函数体,并且返回一个返回值:0   而编译器这时候就会想:你前面又跟我说这个函数没有返回值,在现在又叫我返回一个值过去,这不是矛盾吗?于是,它就报错了!