C inicjalizacja struktury za pomocą etykiet. To działa, ale jak?
Znalazłem wczoraj jakiś kod inicjujący struct, który rzucił mnie na pętlę. Oto przykład:
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);
}
Zaskakujące (dla mnie), oto wyjście:
-> testFunc
test.first=1 test.second=2
Jak widać, struktura jest poprawnie inicjowana. Nie wiedziałem, że takie stwierdzenia mogą być używane w ten sposób. Widziałem kilka innych sposobów inicjowania struktury, ale nie znalazłem żadnych przykładów tego rodzaju inicjalizacji struktury w żadnym z najczęściej zadawanych pytań C w Internecie. Czy ktoś wie, jak to działa?