C或Objective-C中的数组边界检查技术

时间:2011-11-11 01:56:12

标签: objective-c c

我的目标是在将变量用作数组的下标时防止索引超出下限的条件。换句话说,我想将整数变量值限制为> = 0.类似于绝对值的排序,除了不是使负数为正数,它将使负数为零。

有没有比使用宏更好的方法:

#define gte0(value) (value < 0) ? 0 : value

然后在访问数组元素时使用此宏包装表示索引的变量?在访问带有表示索引的变量的数组元素之前,是否有标准的实践边界检查,而不是在代码中的每个位置手动执行?

我正在寻找C或Objective-C中的任何解决方案。

谢谢!

2 个答案:

答案 0 :(得分:1)

索引需要unsigned intNSUInteger个原语。然后,您将获得大于或等于零的值,最多UINT_MAXlimits.h定义的任何值,您只需要检查上限。

答案 1 :(得分:0)

无法在C中自动执行此操作。