beta 的第三篇心得:深入研究 case 语句 (50分)

  • 主题发起人 主题发起人 beta
  • 开始时间 开始时间
不过我奇怪哩。
怎么你的心得有这么多人辨。 我的就没人理会呢?
 
// 老兄你是桂电的吗?
桂电 2000 级 305 班。(要不要查我的三用证?)
// 怎么你的心得有这么多人辨。 我的就没人理会呢?
你写的没有破绽呗:)
 
不对,主要是大家吸取这次的经验了。怎么没有破绽,你看我测的字数了吗?只是又要离
题啊。(那篇到那篇讨论哦) :-)
 
其实,CASE 和 IF..then
..else
的编译过程在 DELPHI 1.0 的技术文档里早已写得清清楚楚,
编译器会根据实际情况(至于这个实际情况是如何界定的就没有下文了)采用散转表的方法编
译 CASE 语句,所以在使用 CASE 语句时,推荐的写法是尽可能让 INDEX 趋于连续。
 
// CASE 和 IF..then
..else
的编译过程在 DELPHI 1.0 的技术文档里早已写得清清楚楚
可惜我没有看过那玩意儿。我从 D4 才开始玩的。
 
精采!精采!
收藏!
不過我學數據結構的時候記得是把頻率高的放在最先執行的位置.離題啊,見笑.

if 條件1 then
else
if 條件2 then
.......
條件1比條件2發生的頻率高.
 
Richard3000: 那个说法,对于 if then
else
而言是正确的,不过 case 没有该限制:)
 
>>beta
老兄,有沒有匯編的手冊,給小弟發一分,謝謝先!
mailto:zhao-zhenhua@163.net
 
汇编手册?sorry,偶没有,我看的是学校的课本:)
 
同意ss2000飞机的比喻,但是如果在一个循环或一个频繁调用的函数中有必要作这样的优化,
不然编译器优化他干什么。
 
准备结贴,抢分的赶快,还有 10 个蹲位:)
 
精彩! 俺也来捧场了。
 
BETA老师。我是来学习的。哈。
 
不知道有人注意到没有,case建表,必然要占用更多的内存。我想它应该是连续存放的吧,
即使是case i=1,i=7,else
other的只有三种选择的情况,也会至少占用7*4个字节吧?
而if else
if则没有多余的数据表空间,纯粹是代码就搞定了。这样看是不是各有所长呢?
未经验证,个人观点。
 
好强的文章
 
whsuperboy:
显然您没有仔细看我前面写的内容,我已经说过了:
在最大项和最小项之间的差值大于等于 15 的时候,处理方法不一样的:)
当然了,我只是阐明这个情况而已,没有逼你们用它:)
 
高手高手!!!
我将您的文章贴到我的个人学习站点上,您不会反对吧?[:)]
 
后退
顶部