这个可恶的编译warning.......(100分)

  • 主题发起人 主题发起人 woodstock
  • 开始时间 开始时间
当然不能去掉index了,如果去掉,程序运行就出错。<br>所以问题不能解决。 我想,index肯定可以存在。<br><br>所以这个分数要给能解决问题,而且不是避开问题的。
 
to woodstock:<br><br>~~~~~~~~~~~~~~~~~~<br>&nbsp; try<br>&nbsp; &nbsp; list:= TStringList.Create;<br>&nbsp; &nbsp; &nbsp;.....<br>&nbsp; finally<br>&nbsp; &nbsp; list.Free<br>&nbsp; end;<br>~~~~~~~~~~~~~~~~~<br>delphi出提示的本意是<br>如果 try 后面的语句出了问题<br>比如说<br>&nbsp; list:= TStringList.Create 失败 (内存不够)<br>那么<br>&nbsp; list.free<br>肯定也会失败(非法存取某个地址之类的错误)<br><br>to 一个过客<br>你把 <br>&nbsp; a:=0;<br>放在<br>&nbsp; if b=20 then<br>的前面意义何在呢?至少是减少了程序可读性,增加了维护的难度吧,<br><br>大家知道印度的程序员的特点是什么吗?就是规范。<br><br>
 
规范就是<br>不需要做的事不做<br>比如那个<br>&nbsp; a:=0;<br><br>该做的事不少做<br>比如那个list:= TStringList.Create;<br>可以这么写<br>&nbsp; try<br>&nbsp; &nbsp; list:= TStringList.Create;<br>&nbsp; except<br>&nbsp; &nbsp; messagebox('can't init, low memory?');<br>&nbsp; &nbsp; halt;<br>&nbsp; end;<br><br>&nbsp; try<br>&nbsp; &nbsp; ....<br>&nbsp; finally<br>&nbsp; &nbsp; ....<br>&nbsp; end;<br><br>这样写很笨,是吧,不过这是标准的印度风格,写程序要严谨,呵呵。
 
最后应该是<br><br><br>&nbsp; try<br>&nbsp; &nbsp; list:= TStringList.Create;<br>&nbsp; except<br>&nbsp; &nbsp; messagebox('can't init, low memory?');<br>&nbsp; &nbsp; halt;<br>&nbsp; end;<br><br>&nbsp; try<br>&nbsp; &nbsp; ....<br>&nbsp; finally<br>&nbsp; &nbsp; list.free;<br>&nbsp; &nbsp; ....<br>&nbsp; end;<br>
 
不对吧?典型的印度风格是:<br><br>&nbsp; try<br>&nbsp; &nbsp; list:= TStringList.Create;<br>&nbsp; except<br>&nbsp; &nbsp; try<br>&nbsp; &nbsp; &nbsp; messagebox('can't init, low memory?');<br>&nbsp; &nbsp; except<br>&nbsp; &nbsp; &nbsp; writeln('sorry,can''t show message dialog!');<br>&nbsp; &nbsp; end; <br>&nbsp; &nbsp; halt;<br>&nbsp; end;<br>
 
to barton:<br>&nbsp; 刚才多有冒犯,贤弟在这里给你赔罪了
 
to 一个过客:<br>&nbsp; 原来你才是真正的高手,倒是很象我一个老同学。呵呵。
 
说了半天,怎么还是没有人能说出如何去掉交叉平台的编译选项的。 faint!
 
在有HINT的单元加编译控制开关语句:<br>{$WARN UNIT_PLATFORM OFF}<br>{$WARN SYMBOL_PLATFORM OFF}<br>
 
接受答案了.
 
我算不上有洁癖,但是我见到Hint和Warnning还是要关注一下的。<br>我的原则就是没用的东西不用,以一个过客的代码来说,我根本就不会用变量a,<br>编译器的提示没有问题,既然b=20我会手工算出来result,然后我会把这段计算<br>代码作为注释的。<br>人比电脑聪明,但并不是所有的人都比电脑聪明。
 
去掉交叉平台的编译选项??不懂,什么意思?<br>如果说要去掉那几个提示的话,一个过客已经说了,把INDEX去掉吗。那几个INDEX根本就没<br>必要加上去的。<br>ROPE都说了吗“不需要做的事不做......该做的事不少做”<br><br>“我编译程序的时候,总是不允许自己程序中有hint和warning”<br>这一点上来说,我比较赞同一个过客和alter。确实,很多时候hint和warning是会让你发现<br>问题。但有时,你会发现,这个HINT或WARNING根本就没什么影响的。我甚至试过这次编译<br>时它有hint和warning,但我再编译多一次,就没了(先按一次CTRL+F9,有出现,再按一次<br>就没了)。例子吗,我暂时没有。一个过客只是随便举了个例,有错是难免,不过一个过客<br>也不要骂人吗,毕竟大家都是为了学东西才来这的。和气生财吗^_^<br><br>
 

Similar threads

I
回复
0
查看
822
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部