クラア。
私はプログラミング学校の学生で、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
が unsigned 型として定義している限り、私がここで基本的に行っていることは、i
変数を (0 から非常に大きな値に) アンダーフローさせてから (その大きな値から 0 に) 1 回オーバーフローさせることです。
私の質問は次のとおりです。コードを短くしなければならないという悪い慣行に関係なく、 ( ) 変数を -1 に設定し、反復ごとに事前にインクリメントして配列を参照することは安全ですか?unsigned
size_t
ありがとう!