| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3323 人关注过本帖
标题:看到很多人问过主函数返回值,我发个帖子解释下!
只看楼主 加入收藏
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
原帖由 [bold][underline]zbqf109[/underline][/bold] 于 2007-12-3 22:44 发表 [url=http://bbs.][/url]
标准里让写main()吗


我有说标准里有 main()

我是说以前允许 main(),这个也是一个事实。(你可以去查查以前的代码)

main() 是可移植的,return 只是函数返回值,主函数也是可以迪归的。

主函数结束后并不是程序结束,程序结束是要关闭输入输出流,释放内存的。
这些都是隐藏的。


-
-

[[italic] 本帖最后由 cosdos 于 2007-12-4 15:14 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 22:50
jackly
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-12-1
收藏
得分:0 
C Primer Plus
2007-12-03 22:54
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
回复 11# 的帖子
不要说以前
以前void main()也是可行的

坚决不跟用TC的人打交道!
2007-12-03 23:01
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
原帖由 [bold][underline]zbqf109[/underline][/bold] 于 2007-12-3 23:01 发表 [url=http://bbs.][/url]
不要说以前
以前void main()也是可行的



    在以前的标准中 main()  返回值为 int ,如果你不加上 return ,
那么编译器会为你加上 。

[[italic] 本帖最后由 cosdos 于 2007-12-4 15:16 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 23:05
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
回复 14# 的帖子
我说的是“可行”
不符合标准不一定不可行
我还是那句话,你让编译器给你自动返回一个0作为main()的返回值,是不好的,但不是不可行
我不信这个程序能在你的编译器上通过:
程序代码:
#include <stdlib.h>

fun();

main()
{
      fun();
      system("pause");
}

fun()
{
}
是的,main函数你不写int没关系,可是编译器可不认识你那个fun();是在声明一个函数,还是在调用一个函数?
编译器对main函数经过特殊的处理,但你不要认为这种特殊是必须的。特殊对于移植来讲,绝对不是一件好事情。

[[italic] 本帖最后由 zbqf109 于 2007-12-3 23:14 编辑 [/italic]]

坚决不跟用TC的人打交道!
2007-12-03 23:12
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
原帖由 [bold][underline]zbqf109[/underline][/bold] 于 2007-12-3 23:12 发表 [url=http://bbs.][/url]
我说的是“可行”
不符合标准不一定不可行
我还是那句话,你让编译器给你自动返回一个0作为main()的返回值,是不好的,但不是不可行
我不信这个程序能在你的编译器上通过:#include

fun();

main()
{
      fun();
      s ...



    我也从来没有让我的编译器把 main() 自动返回0,我使用的是 DEV-C++,
完全通过。

#include <stdlib.h>
fun();
main()
{
      fun();
      system("pause");
}
fun()
{
}

//-------------- 请按标准写主函数 -------------------------------------//
int main(void)  // 标准写法
{
    return 0;
}

[[italic] 本帖最后由 cosdos 于 2007-12-4 15:18 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 23:16
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
回复 16# 的帖子
大哥,我们的程序是一样的吗?
………………

坚决不跟用TC的人打交道!
2007-12-03 23:17
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
int main(void)
{
    return 0;
}

很多编译器还没有严格要求这样做。

[[italic] 本帖最后由 cosdos 于 2007-12-4 15:05 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 23:20
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
同样是Devc,我这里提示很多错误
jackys2006 的 《[原创]关于main()函数》中的一句话:
main()
这种形式开始。C90标准允许这种形式,但是C99标准不允许。因此即使你当前的编译器允许,也不要这么写。

好了,我就说这么多,这个话题我就参与到这里

坚决不跟用TC的人打交道!
2007-12-03 23:27
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
原帖由 [bold][underline]zbqf109[/underline][/bold] 于 2007-12-3 23:27 发表 [url=http://bbs.][/url]
同样是Devc,我这里提示很多错误
jackys2006 的 《[原创]关于main()函数》中的一句话:
main()
这种形式开始。C90标准允许这种形式,但是C99标准不允许。因此即使你当前的编译器允许,也不要这么写。

好了,我就说这么多,这个 ...


你没有包含  stdlib.h 吧!

文件必须包含!因为函数是在库中的!

[[italic] 本帖最后由 cosdos 于 2007-12-3 23:33 编辑 [/italic]]

—>〉Sun〈<—
2007-12-03 23:31
快速回复:看到很多人问过主函数返回值,我发个帖子解释下!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014108 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved