社区
C++ 语言
帖子详情
哪位高手知道void main和int main的区别?
iamwiner
2004-10-23 09:45:33
我买了一本书:清华大学出版社的<<捉虫历险记-常见C++ BUG大围剿>>
上面第一例子就说:虽然void main在所有的编译器中都可以通过
但效率低!是错误的!
还说在C++标准中main函数是int的而不是void的?
我查了一下MSDN和网络,都没有找到相关内容
因此,想问一下,void main和int main的区别到底有哪些?
...全文
2770
39
打赏
收藏
哪位高手知道void main和int main的区别?
我买了一本书:清华大学出版社的<> 上面第一例子就说:虽然void main在所有的编译器中都可以通过 但效率低!是错误的! 还说在C++标准中main函数是int的而不是void的? 我查了一下MSDN和网络,都没有找到相关内容 因此,想问一下,void main和int main的区别到底有哪些?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
39 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cxjddd
2004-10-25
打赏
举报
回复
区别就是 void main 是错误的:)
而 int main 是标准所要求的
hsuyuan
2004-10-25
打赏
举报
回复
受益匪浅!
airwudi
2004-10-25
打赏
举报
回复
我没有看到右上角有提问的字样啊?
到底怎么提问啊,麻烦各位帮忙一下
yangfasheng
2004-10-25
打赏
举报
回复
return 0
在自动生成的工程程序中也是默认为 return 0
Devillove
2004-10-25
打赏
举报
回复
return 0;
yangfasheng
2004-10-25
打赏
举报
回复
楼主所提出来的问题应该是不少初学者的困惑,
我也有过,即使是现在也不是很清楚,而是参照MS自动生成时的标准工程来写.
个人觉得这样的帖子发在这里应该没有什么有对的.
不知道楼上的为什么有这样的看法.
grayloach1
2004-10-25
打赏
举报
回复
to: airwudi(飞人) 提问请到各小区。遇到问题要先试着自己解决!
zeusnchen
2004-10-25
打赏
举报
回复
其实main函数可以看成是操作系统期待的一个入口函数,
操作系统认为这个函数应该是返回一个int返回值的,并且带有三个参数
既,它的原型应该是:
int main(int argc, char **argv, char **env)
一般的编译器可以接受任何形式的main函数,只要它的函数名字是main就可以了
而对main函数的具体签名不做要求
所以你写
void main()
void main(int argc, char **argv)
...
都是一样的,只是要明白,任何同
int main(int argc, char **, char **)
不一样的签名都可能有问题,例如,如果返回值是void
你可能无法正确获取程序退出时的状态等等
joseph0311
2004-10-24
打赏
举报
回复
int main()....
怒风in南京
2004-10-24
打赏
举报
回复
学习学习
纪俊
2004-10-24
打赏
举报
回复
正常退出就是return 0
不写也是这样子的
/////////////////////////////////////////////////////////////////////
欢迎大家使用编程文档手册V3.5,编程辅助类软件
集编程文档的收集、查询、浏览、编辑等功能于一体的辅助编程类软件。通过日积月累,相信本软件将给广大程序开发人员以及编程爱好者们带来很大的帮助。
下载地址:
天空软件站:http://www.skycn.com/soft/11906.html
华军软件园:http://www.onlinedown.net/soft/6496.htm
donrong
2004-10-24
打赏
举报
回复
正常退出到底是return 0还是1
好像众说纷纭呀
liyufeng1983
2004-10-24
打赏
举报
回复
大家说得都很对啊,还是用标准好。
athena301
2004-10-24
打赏
举报
回复
wegotnothingtolosebu(再教育,把穷人通通打昏!!)
I 服 了 YOU!!!!!
zengkun100
2004-10-24
打赏
举报
回复
pjincz(无定乾坤),真强!
lgwen
2004-10-24
打赏
举报
回复
又学了点东西
wegotnothingtolosebu
2004-10-24
打赏
举报
回复
使用int主要是可以给操作系统返回一个值,让操作系统明白这个程序执行的状态,比如执行这个程序后下一步可能要根据这个返回值做分支处理,如果是void的话就是一个哑巴程序,异常退出和正常推出无法区别,的确移植性很差。
int mian是标准的写法
pjincz
2004-10-24
打赏
举报
回复
对于一个函数,如int max(int a,int b)
那么编译器在运行a=max(5,7);时;
做的工作只是把寄存器ax复制给a
所以说对于一个没有return语句的int型变量
int dd(int x)
{
x=x*5;
}
当运行a=dd(3);时a的结果就是15
但如果有一个函数void maxv(int a,int b)
同样他没有return语句(或者有return语句没有返回值)
如果我们写出a=maxv(1,2)
编译器就会认出我们把一个无返回类型的函数赋值给一个变量
从而产生一个错误.
但是如果出现编译器无法识别原函数(只是一个假设)让编译器通过了编译,
那么结果会是和有返回值,无return的结果一样.
这里就是这种情况,操作系统默认一个程序的返回为int
但是我们的main却是void
所以操作系统得到的返回值是我们最后的操作结果中的ax!
一般来说操作系统会把返回的值丢弃掉!
也就是说,这时我们用int main()和void main()是没有区别的!
但是有些时候却不是这样的.大家都知道,我们一般来用0返回表示程序正常结束!
我们如果在其他程序中调用这个程序的话,
我想用来判断只程序是否正常的被执行时非常的重要的!
这时,用void main()就非常的有害了!
所以说,我个人坚决的反对用void main()
其实说用int main()累着什么人了吗!
也没有啊至少你还可以少写一个void,
只不过在程序的结束处要写上return 0罢了!
lonelydreamsym
2004-10-24
打赏
举报
回复
up
李海辰
2004-10-24
打赏
举报
回复
呵呵,我自己重写 mainCRTStartup 函数,然后调用我自己的入口点函数~~ 通常我喜欢用 void AppEntry()。呵呵~~至于 C Runtime 原来的入口函数嘛~~去 die 吧~~
加载更多回复(19)
void
main
(),
int
main
() 和
int
main
(
void
)的
区别
1、
区别
是
main
()函数是否有返回值。2、
void
定义的函数没有返回值,
int
定义的函数返回整型值。3、
void
,字面意思是“无类型”,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,有注释和限制程序的作用。 4.标准的
main
函数格式为:
int
main
(
int
argc, char *argv[]);即返回值为整型,带两个参数,argc为命令行参数的个数,argv为指...
int
main
(
void
)和
void
main
()的
区别
#include<stdio.h>
void
main
(){ } #include<stdio.h>
int
main
(
void
){ return 0; }
void
main
() 这么定义只是说明
main
函数没有返回值
int
main
(
void
)和
int
main
()是一样的,括号里没有东西就相当于
void
, 只是说明
main
函数有一个
int
类型的返回值 ...
main
()、
int
main
()、
int
main
(
void
)、
void
main
()、
void
main
(
void
)
分辨几种
main
函数的用法
C语言——
int
main
,
main
和
void
main
;return
先简而言之 1.
void
和
int
表明声明不同的主函数返回值,不声明则默认返回值为
int
整型。 2.
int
main
可移植性强。 3.C语言从来没声明过```
void
main
```,只声明过```
main
()```。 3.抛弃一切用```
void
main
```编写C程序的习惯! 稍微深入
main
函数,又称主函数,作为绝大大部分C程序唯一的入口(比如windows编程中可
辨析主函数:
main
()/
void
main
()/
int
main
()/
int
main
(
void
)/
int
main
(
int
argc, char *argv[])之间的
区别
(this is taken from one of my favorite programming web-site---C programming.com,as we see the topic is very
int
eresting and attractive, i decided to translate it
int
o Chinese.)
“
void
main
与
int
main
之间的
区别
是什么?”这是一个常见的问题。这个faq就是来探讨一下这个问题,并深入研究一
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章