Как инициализировать структуру, которая содержит в себе другие определения структуры ?.Инициализация структур в c
Ex:
struct foo{
struct foo1{
int a;
int b;
int c;
} abc;
} xyz;
Как инициализировать структуру, которая содержит в себе другие определения структуры ?.Инициализация структур в c
Ex:
struct foo{
struct foo1{
int a;
int b;
int c;
} abc;
} xyz;
Самый простой с современной C обозначены Инициализаторы
struct foo xyz = { .abc = { .a = 56, } };
Но нужно учитывать, что C не имеет вложенные типы, ваш foo1
также глобальный тип.
Обычно люди предпочитают отделить такое объявление типа, сначала одно для foo1
, а затем foo
, из объявлений переменных и определений.
Я просто ожидал ответа. Большое спасибо –
@JensGustedt показывает красивый современный C способ сделать это. Старшей школой C было бы:
struct foo xyz = { { 1, 2, 3 } }; /* sets a, b, c to 1, 2, 3, respectively */
struct foo xyz = { { 1 } }; /* just sets the member "a" to 1
Как вы инициализируете простую структуру? –