Void 的问题(函数指针返回)
下面的代码来源 C程序设计 (第3版) 当我编译的时候(DEV-C++)出现错误 3 C:\\测试\练习2.cpp `main' must return `int' 当我把main函数前面的 Void去掉,编译就能成功,请问这是为什么啊。。。。。。。 我看这本书上写的, 一般Void写上比较好么。。。而且书上例题,难道错了???? 请老师们给我个答案啊 #include <stdio.h> void main() { float score[][4]={{60,70,80,90},{56,45,65,23},{76,56,68,44}}; float *search(float (*pointer) [4],int n); float *p; int i,m; printf("enter the number of student: "); scanf("%d", &m); printf("The scores of No. %d are: \n",m); p=search(score,m); for (i=0;i<4;i++) printf("%5.2f\t", *(p+i)); printf("\n"); } float *search (float (*pointer)[4],int n) { float *pt; pt = *(pointer+n); return(pt); } |
----------------解决方案--------------------------------------------------------
main 默认为int 型,即 int main(), 返回整数。
注意,新标准不允许使用默认返回值,即int不能省,而且对应main函数不再支持void型返回值,因此为了使程序有很好的移植性,强烈建议使用:
int main()
{
return 0; /* 新标准主函数的返回值这条语句可以省略 */
}
main 函数的返回值应该定义为 int 类型,C 和 C++ 标准中都是这样规定的。虽然在一些编译器中,void main 可以通过编译(如 vc6),但并非所有编译器都支持 void main ,因为标准中从来没有定义过 void main。
dev-c++可能就不支持void main
----------------解决方案--------------------------------------------------------
谢谢。。。。 版主,我们还是老乡呢,我也是沈阳的。。。 怪丢人的,菜鸟一只。。。呵呵
非常感谢
----------------解决方案--------------------------------------------------------
回复:(cycchina)谢谢。。。。 版主,我们还是老乡...
哈哈,这么巧。我也没学多久,大家一同进步啊----------------解决方案--------------------------------------------------------
c99中,主函数只有两种写法:
1、
int main(void)
{
return 0;
}
2、
int main(int argc, char *argv[])
{
return 0;
}
c++98中,
int main()
{
return 0;
}
第二种和c99中的相同。
[此贴子已经被作者于2007-10-30 10:47:46编辑过]
----------------解决方案--------------------------------------------------------
VOID MAIN从来都不是合法的
----------------解决方案--------------------------------------------------------