编程技巧干货笔记 【数组范围界定】

来源:互联网 发布:穿越火线刮刮乐软件 编辑:程序博客网 时间:2024/04/29 16:30

我们通常会遇到需要使用一个下标访问数组某个元素的情况

它可能会像这样 :  public  Data  getDataByIndex(int index);

而内部实现可能是很简单的这样: 

Data getDataByIndex(int index){    if(index >= 0 && index < lenOfList)        return list[index];    return NULL;}


这样很好,没有问题,但是最近在 Irrlicht 的源码中看到了一种比较优雅也更简洁的写法

Data getDataByIndex(int index){    if( (unsigned)index < lenOfList )        return list[index];        return NULL;}


将下标转换为无符号数就免去了对 "<0" 情况的考虑

而且(Visual Studio中) int 型在 > 0 部分最大只能表示到 2147483647

而负值转换为 unsigned 之后最小都是 2147483648     ( 对于 short 等等都是一样的哈 )

所以对于类似数组界限圈定这类的问题,这样做代码更简单也更优雅,博主比较中意



见解不到之处,请大家多多提出意见和建议吧!   ლ(╹◡╹ლ)