编程中常常需要用到数组的元素个数,判断是否越界。推荐一个比较方便、安全的方式:
#define ARRAY_TOTAL(a) (sizeof(a) / sizeof(a[0]))
const INT8U array[] = {0, 1, 2, 3, 4, 5};
for (INT8U i = 0; i < ARRAY_TOTAL(array); ++i)
{
... ...
}
这种不用标出元素个数来定义数组的做法,采用了表达式计算的宏,有明显的优点:
增减数组元素个数时,不影响程序中元素个数判断。