Ответ 1
Это функция C99, которая позволяет вам устанавливать определенные поля структуры по имени в инициализаторе. До этого инициализатор должен был содержать только значения для всех полей в порядке, которые все еще работают, конечно.
Итак, для следующей структуры:
struct demo_s {
int first;
int second;
int third;
};
... вы можете использовать
struct demo_s demo = { 1, 2, 3 };
... или:
struct demo_s demo = { .first = 1, .second = 2, .third = 3 };
... или даже:
struct demo_s demo = { .first = 1, .third = 3, .second = 2 };
... хотя последние два относятся только к C99.