大佬教程收集整理的这篇文章主要介绍了delphi – 我应该使用无符号整数来计数成员吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
回答
例如,假设一个类
TList <T> = class private FCount : Cardinal; public property Count : Cardinal read FCount; end;
这有道理吗,不是吗?存储在列表中的项目数不能为负数,那么为什么不使用无符号整数类型呢?我认为一般来说,总是使用最小的一般(最特殊的)类型可能的一个好的原则.
现在,迭代列表看起来像这样:
for I := 0 to List.Count - 1 do Writeln (List [I]);
当列表中存储的项目数为零时,编译器尝试评估
List.Count - 1
这会导致一个很好的整数溢出(下溢到准确的).结合调试器不显示发生异常的适当位置的事实,这对我来说很难找到.
让我补充一点,如果你已经关闭了溢出检查,所造成的错误将更加难以追踪,因为那么你将经常访问不属于你的内存,这会导致未定义的行为.
从现在开始,我将对所有的会员使用纯整数,以避免这种情况.
如果这是完整的废话,请指出我:)
(我刚刚花了一个小时跟踪整数溢出在我的代码,所以我决定分享 – 大多数人在这里当然会知道,但也许我可以节省一些时间.)
@H_772_28@让我们清楚一点:每个需要使用代码的程序员都会讨厌使用Cardinal而不是一个整数.
@H_772_28@ @H_772_28@以上是大佬教程为你收集整理的delphi – 我应该使用无符号整数来计数成员吗?全部内容,希望文章能够帮你解决delphi – 我应该使用无符号整数来计数成员吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。