Inicialização de C struct usando rótulos. Funciona, mas como?
Eu encontrei algum código de inicialização struct ontem que me jogou para um loop. Aqui está um exemplo:
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);
}
Surpreendentemente (para mim), aqui está a saída:
-> testFunc
test.first=1 test.second=2
Como você pode ver, a estrutura é inicializada corretamente. Eu não sabia que instruções rotuladas poderiam ser usadas assim. Eu vi várias outras maneiras de fazer a inicialização de struct, mas não encontrei nenhum exemplo desse tipo de inicialização de struct em qualquer um dos C FAQs on-line. Alguém está ciente de como / porque isso funciona?