C struct initialization using labels. Es funktioniert, aber wie?

Ich habe gestern einen Struktur-Initialisierungscode gefunden, der mich zu einer Schleife veranlasst hat. Hier ist ein Beispiel:

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);
}

Überraschenderweise (für mich) ist hier die Ausgabe:

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

Wie Sie sehen, wird die Struktur ordnungsgemäß initialisiert. Mir war nicht bewusst, dass beschriftete Aussagen so verwendet werden könnten. Ich habe verschiedene andere Möglichkeiten zur Strukturinitialisierung gesehen, aber ich habe keine Beispiele für diese Art der Strukturinitialisierung in den Online-FAQs zu C gefunden. Weiß jemand, wie / warum das funktioniert?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage