Jak zainicjować strukturę, jeśli jedno pole w strukturze samo jest strukturą?Inicjacja struktury С
Dziękuję.
Jak zainicjować strukturę, jeśli jedno pole w strukturze samo jest strukturą?Inicjacja struktury С
Dziękuję.
Musisz użyć więcej aparatów ortodontycznych (w rzeczywistości są one opcjonalne, ale GCC generuje ostrzeżenie w tych dniach). Oto przykład:
struct s1 { int a; int b; };
struct s2 { int c; struct s1 s; };
struct s2 my_s2 = { 5, { 6, 3 } };
struct A
{
int n;
}
struct B
{
A a;
} b;
Można zainicjować n za pomocą poniższej instrukcji. Czy tego właśnie szukasz.
b.a.n = 10;
W terminów używanych w celu określenia języka, który jest przykład * przypisania * zamiast * inicjalizacji *. W tym kontekście inicjalizator jest używany tylko przy deklaracji obiektu. – Clifford
można zainicjować strukturę jeśli jedno pole w strukturze jest sama struktura
struct add{
int house;
char road;
};
struct emp{
int phone;
struct add a;
};
struct emp e = { 123456, 23, "abc"};
printf("%d %d %c",e.phone,e.a.house,e.a.road);
Opcjonalne tylko wtedy, gdy element członkowski 's' jest w pełni zainicjowany (tj. Wszystkie elementy), konieczne, jeśli chcesz tylko częściowo zainicjować strukturę. – Clifford
W C99 możesz użyć następującej notacji, która jest łatwiejsza w utrzymaniu i przeczytaniu: 'struct s2 my_s2 = {.c = 5, .s = {.a = 6, .b = 3}};' –