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

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

它可能会像这样 :  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 等等都是一样的哈 )

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



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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值