幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2378|回复: 7

[通用编程] 再问个程序(main)

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-8-28 22:21:34 | 显示全部楼层 |阅读模式
int  main()
{
      readin();
      sort();
      compact();
      print();
      return 0;
}
想问的是这里的  return  0  ;     是不是必须有的呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2007-8-28 22:35:48 | 显示全部楼层
经典问题,答案是不必要,但建议写上。
因为这个值表示程序的exit code,一般认为0表示正常退出,其他值表示程序非正常退出。

但也没啥大用,很少有地方会用到程序的exit code。

你写void main(){}应该也可以编译过的。

其实main还应该接受参数的:
int main(int argc, char** argv)
{
  ...
}
这才是完整的main,有退出代码,接受参数。但如果不需要接受参数,就不必要写~~

EDIT:补上那个*

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-28 22:55:56 | 显示全部楼层
說話也不是這樣說的。。。
一般來說,main的return值真的是啥也可以
void main在MSVS下譯是沒問題
不過,如果想玩跨平台的話,或者支持開源的話,gcc,g++,mingw
這類主流Compiler是不支持void main的

那某只要傳回任意值便可以了,為啥一定要0
因為一個正常的程式回傳0代表程式正常運作,回傳0以外的值
動聽一點是exit code,直接一點便是error code
這個DR已經說明了
那管他error code又如何?某硬是要傳他個1
很不幸地,當程式被結合在其他軟件下,不守規則的結果便是整個軟件掛掉
像某用Vim內編程,如果某不傳回0,預先準備的其他指令便行不下去了

所以作為一個好人,最好還是守前人訂下的,加上return 0;

再補充,main的參數是(int argc, char** argv) 而不是char*

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-8-28 23:12:02 | 显示全部楼层
貌似是char *argv[]而不是char **,虽然也差不多……

其实用哪个原型是一样的,主要是自己究竟需要哪些参数。

注意如楼上所说,GCC一类的编译器是不支持void main()的,不过貌似Windows下大多数编译器都可以……如果使用void的话,exit code就是0。

exit code对Unix风格的程序来说还是比较重要的,因为可能会有脚本运行你的程序并判断返回值。至于Windows就没所谓了。
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-29 00:22:58 | 显示全部楼层
某一直以為char** 和char* []是等價的。。nihaha..
也習慣了用char**,比較分明一些

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2007-8-29 01:36:08 | 显示全部楼层
嗯,是char**,或者char* argv[]。手抖少写了个*
-_-b

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

2

主题

8

帖子

90

积分

②入门

积分
90
发表于 2007-9-11 01:37:07 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
推荐大型网络游戏魔兽世界
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-9-11 10:13:51 | 显示全部楼层
[s:5] 晕,别在这卖广告
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-2 09:24 , Processed in 0.021295 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表