Đây là một tính năng của C99 cho phép bạn đặt các trường cụ thể của cấu trúc theo tên trong trình khởi tạo. Trước đó, trình khởi tạo chỉ cần chứa các giá trị, cho tất cả các trường, theo thứ tự - tất nhiên vẫn hoạt động.
Vì vậy, đối với cấu trúc sau:
struct demo_s {
int first;
int second;
int third;
};
...bạn có thể dùng
struct demo_s demo = { 1, 2, 3 };
...hoặc là:
struct demo_s demo = { .first = 1, .second = 2, .third = 3 };
... hoặc thậm chí:
struct demo_s demo = { .first = 1, .third = 3, .second = 2 };
... mặc dù hai chiếc cuối cùng chỉ dành cho C99.