我们通常会遇到需要使用一个下标访问数组某个元素的情况
它可能会像这样 : 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 等等都是一样的哈 )
所以对于类似数组界限圈定这类的问题,这样做代码更简单也更优雅,博主比较中意
见解不到之处,请大家多多提出意见和建议吧! ლ(╹◡╹ლ)