关于main函数的疑问。

果冻虾仁 2013-02-04 02:54:03
小弟是菜鸟。敢问各位大虾。
void main()
{
}

int main()
{
return 0;
}
有什么区别吗
...全文
685 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
25K纯帅 2013-02-09
  • 打赏
  • 举报
回复
总结:少用void main,多用 int main(){ return 0;}
lymoge 2013-02-08
  • 打赏
  • 举报
回复
我也刚学c,个人倾向int main
Athenacle_ 2013-02-08
  • 打赏
  • 举报
回复
我一看到void main的代码我就再也不想往下看了
wizard_tiger 2013-02-08
  • 打赏
  • 举报
回复
现在有很多编译器不支持int main()这个形式。
mymtom 2013-02-06
  • 打赏
  • 举报
回复
引用 13 楼 guodongxiaren 的回复:
我们学的课本上是void main()。老师也说这样好。
你们课本错了,你们的老师也错了!
AdleyCool 2013-02-06
  • 打赏
  • 举报
回复
貌似现在好多编译器都不支持void main()了吧 还是用大家都认可的int main
zslInSz 2013-02-05
  • 打赏
  • 举报
回复
建议楼主看一些,经典的C方面的书籍,eg:《C和指针》《C高级编程》,这样就会明白其中的区别了,而且有作于以后你编写程序时的代码的规范
mymtom 2013-02-05
  • 打赏
  • 举报
回复
建议楼主不要用void main啦! 有些书真的害死人了! C89 2.1.2.2 Hosted environment A hosted environment need not be provided, but shall conform to the following specifications if present. Program startup The function called at program startup is named main. The implementation declares no prototype for this function. It can be defined with no parameters: int main(void) { /*...*/ } or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared): int main(int argc, char *argv[]) { /*...*/ }
二零一四Tenc 2013-02-05
  • 打赏
  • 举报
回复
引用 14 楼 zpxly 的回复:
c++里面是int main(){} c里面是void main(){}
打错了 c++里面是int mian(){ return 0;}
二零一四Tenc 2013-02-05
  • 打赏
  • 举报
回复
c++里面是int main(){} c里面是void main(){}
果冻虾仁 2013-02-05
  • 打赏
  • 举报
回复
引用 11 楼 mymtom 的回复:
建议楼主不要用void main啦! 有些书真的害死人了! C89 2.1.2.2 Hosted environment A hosted environment need not be provided, but shall conform to the following specifications if present. Program ……
我们学的课本上是void main()。老师也说这样好。
FrankHB1989 2013-02-05
  • 打赏
  • 举报
回复
int main(void)和int main(int, char*[])是保证被宿主实现支持,其它由实现定义,不见得能用。独立实现可以没有main。
ForestDB 2013-02-04
  • 打赏
  • 举报
回复
新老compiler的行为。
AnYidan 2013-02-04
  • 打赏
  • 举报
回复
不同 compiler 的规定
AnYidan 2013-02-04
  • 打赏
  • 举报
回复
不同 copiler 的规定
lucky-lucky 2013-02-04
  • 打赏
  • 举报
回复
编译

#include <stdio.h>
main(){
    printf("hello world");
}
该程序的返回结果在不同的操作系统上是不同的,在不遵从C99的编译器上编译其返回结果是随机的,也就是说,当我们使用shell脚本判断该程序执行是否执行成功的时候就会出现问题,当在遵从C99的编译器上编译后,其返回结果是0

./test
if [ $? -eq 0 ]
then
    echo "success"
else
    echo "failed"
fi
上面这段shell脚本无法正常执行
七擒关羽 2013-02-04
  • 打赏
  • 举报
回复
有区别 1、首先 第一个定义 void main(),这个是非官方的,在老版本的编译器或个别编译器兼容 2、int main(),这个是官方声明的,以前为 main(),默认函数返回类型是int,编译器都认可的,可以提升代码移植性
小猪飞剑 2013-02-04
  • 打赏
  • 举报
回复
没区别,只不过UNIX下编译的时候会有个默认的返回值,即时是void他也会有return
「已注销」 2013-02-04
  • 打赏
  • 举报
回复
不管你有没有返回值,mian函数都会返回一个值传递给exit函数。仅此而已。 main函数不管有没有声明参数都会有三个参数传过来。
风行踩火轮 2013-02-04
  • 打赏
  • 举报
回复
这个应该没有什么区别,主要是对于机制的理解,在linux下大家都喜欢有返回值的函数,所以基本上用的都是int main()函数吧,自己编写小程序,也可以写成void main()程序
加载更多回复(1)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧