C struct инициализация с использованием меток. Это работает, но как?

Вчера я нашел некоторый код инициализации структуры, который бросил меня в цикл. Вот'Вот пример:

typedef struct { int first; int second; } TEST_STRUCT;
void testFunc() {
    TEST_STRUCT test = {
        second: 2,
        first:  1
    };
    printf("test.first=%d test.second=%d\n", test.first, test.second);
}

Удивительно (для меня), здесьs вывод:

-> testFunc
test.first=1 test.second=2

Как видите, структура инициализируется правильно. Я не былТаким образом, помеченные заявления могут быть использованы таким образом. Я'Я видел несколько других способов инициализации структуры, но я неНе найти примеров такого рода инициализации структуры в любом из часто задаваемых вопросов по Си. Кто-нибудь знает, как / почему это работает?

Ответы на вопрос(5)

Ваш ответ на вопрос