В стандарте C, начиная с C99, указанные инициализаторы позволяют инициализировать отдельные элементы массива в виде:
int array[4] = {[1] = 42};
Синтаксис, на который вы наткнулись, - это инициализатор диапазона, это расширение GNU для инициализации.все элементы между 0
и 9
до заданного значения, таким образом, строго эквивалентны:
static unsigned int array[10] = { [0] = 5, [1] = 5, [2] = 5, [3] = 5, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 5, [9] };
только меньше бремени для ввода и чтения.
Ссылка