| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 31773 人关注过本帖, 12 人收藏
标题:[转载]给使用TC的初学者的一篇文章★★★
只看楼主 加入收藏
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
LS,说说看有什么不妥之处,我很想知道~~~~~~~

偶学编程,也许本身就是一个错。。。
2007-08-17 23:47
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
哦,,那请教一下文章中有哪些不妥的地方?
2007-08-18 10:46
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
Knocker说的可能是c99不再支持隐含式的int规则,之前的标准是如果函数没有写返回值则默认返回int,C99中非void类型函数必须使用带返回值的return语句.

雨中飞燕 的第二节讨论函数返回值的第一个程序有个factorial(int n), 这在c99以前的标准中编译器会解释为int factorial(int n)。 你的例子是输入0测试,不过这个程序在输入0的时候没有返回语句,于是返回值没有直接设置,具体的返回值是不确定的,pc的汇编我还没有学,在单片机中被调用函数把返回值写入通用寄存器中,返回后调用它的函数读寄存器获取返回值,这个例子是没有return执行所以带返回值的寄存器没有设置,其值是之前最后一个使用过该积存器的指令决定的。
2007-08-18 11:39
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
没错啊,C99以前的标准就是可以省略,省略就默认为int呀
我举的那个例子就是故意没加int
2007-08-18 11:50
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
那么你举这个例子能说明什么呢?
#include <stdio.h>
factorial(int n)
{
if(n==1)return 1;
else if(n>1)return n * factorial(n-1);
}

这里在输入0时没有执行返回语句,最后计算的结果是不确定的。这个程序只能说明要对每种输入做处理并返回,这里的错误和不显式说明返回值无关。
2007-08-18 11:59
hangeng
Rank: 2
等 级:论坛游民
帖 子:424
专家分:39
注 册:2007-7-23
收藏
得分:0 

请问高手:
我装的是Win-TC
它的内核是TC2.0
是否我也该换编译器!

还有
Devpp等
我看它们好象是c++的编译器吧!


  雨水冲不进窗来,在玻璃上痛哭。但它至少奋斗过。
2007-08-18 12:31
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
我见过的所有c++的编译器都可以编译c程序,要知道c是c++的一个子集。

DEV-C++还有VC都可以编译c程序,这两个编译器对c语言标准的兼容性好,以后要学c++也不用转换编译环境,强烈建议使用。
2007-08-18 12:50
hangeng
Rank: 2
等 级:论坛游民
帖 子:424
专家分:39
注 册:2007-7-23
收藏
得分:0 

谢谢


  雨水冲不进窗来,在玻璃上痛哭。但它至少奋斗过。
2007-08-18 12:54
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
我举的两个例子,一个是说明没有return的问题,一个是说明没有返回类型的问题
你说的那个例子就是没有return的时候可能带来的问题
知道了我的意思没有?
2007-08-18 13:38
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
我狂晕,你这一段前面都是说函数声明,可是这个没有执行return和函数声明无关啊。

这个程序是错误的任何一个编译器编译运行出任何结果都是正常的,TC算出1你也不能说这是tc的缺点吧,所以在讨论TC缺点的文章中举这个例子不是跑题吗?脱离上下文所以我理解的和你不一样
2007-08-18 14:41
快速回复:[转载]给使用TC的初学者的一篇文章★★★
数据加载中...
 
   



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

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