C Initializer List: Everything You Need to Know
C initializer list - это метод инициализации массива, структуры или объединения с помощью списка значений вместе с фигурными скобками. Этот метод инициализации введен в С89 (ANSI C) и используется в С (C11) и C++ (C++11) до сих пор.
Пример инициализации массива с помощью initializer list:
c
int array[5] = {1, 2, 3, 4, 5};
Здесь мы определяем массив целых чисел с пятью элементами и инициализируем его с помощью фигурных скобок, разделяя значения запятыми.
Пример инициализации структуры с помощью initializer list:
c
struct person {
char name[20];
int age;
float salary;
};
struct person worker = {"John", 30, 5000.0};
Здесь мы определяем структуру с именем "person" и тремя полями: "name" - массивом символов, "age" - целочисленным типом и "salary" - вещественным типом. Затем инициализируем структуру переменной "worker" с помощью фигурных скобок, значения разделяются запятыми.
Пример инициализации объединения с помощью initializer list:
c
union number {
int i;
float f;
};
union number value = {.f = 3.14};
Здесь мы определяем объединение с именем "number", содержащее два поля: "i" - целочисленный тип и "f" - вещественный тип. Затем инициализируем переменную "value" с помощью initializer list, указав значение поля "f" равным 3.14.
Initializer list также можно использовать для инициализации членов структуры или объединения с помощью их имен. Это делается с помощью операции точка и системы именования, как показано выше при инициализации объединения. В случае многомерных массивов можно использовать несколько фигурных скобок для разделения значений.
Initializer list удобен для инициализации структур, массивов и объединений, что позволяет сделать код более читаемым и легким для понимания.