克拉阿。
我是一所编程学校的学生,要求我们用少于 25 行代码编写 C 函数。所以,基本上,每一行都很重要。有时,我需要像这样缩短作业:
#include <stddef.h>
#include <stdio.h>
#define ARRAY_SIZE 3
int main(void)
{
int nbr_array[ARRAY_SIZE] = { 1, 2, 3 };
size_t i;
i = -1;
while (++i < ARRAY_SIZE)
printf("nbr_array[%zu] = %i\n", i, nbr_array[i]);
return (0);
}
这段代码的重要部分是size_t
名为 的计数器i
。为了节省几行代码,我想在循环的条件下预先增加它。但是,只要 C 标准定义size_t
为无符号类型而言,我在这里所做的基本上是使i
变量下溢(从 0 到一个非常大的值),然后将它上溢一次(从那个大值到 0)。
我的问题如下:无论必须缩短代码的不良做法如何,将( ) 变量设置为 -1 然后在每次迭代时预递增它是否安全unsigned
size_t
以浏览数组是否安全?
谢谢!