Ceci est une fonctionnalité C99 qui vous permet de définir des champs spécifiques de la structure par nom dans un initialiseur. Avant cela, l'initialiseur devait contenir uniquement les valeurs, pour tous les champs, dans l'ordre - ce qui fonctionne toujours, bien sûr.
Donc pour la structure suivante:
struct demo_s {
int first;
int second;
int third;
};
...vous pouvez utiliser
struct demo_s demo = { 1, 2, 3 };
...ou:
struct demo_s demo = { .first = 1, .second = 2, .third = 3 };
...ou même:
struct demo_s demo = { .first = 1, .third = 3, .second = 2 };
... bien que les deux derniers soient pour C99 seulement.