Вложенная структура в основном представляет собой структуру внутри структуры. В вашем примере struct time
является членом struct date
. Логика доступа к элементу структуры останется прежней. то есть путем доступа к члену day
от struct date
.
, но здесь вам потребуется создать структурную переменную для struct time
, чтобы получить доступ к ее членам.
Если вы хотите получить доступ к членам вложенной структуры, то она будет выглядеть,
dp->time.sec // dp is a ptr to a struct date
d.time.sec // d is structure variable of struct date
Вы можете проверить следующий код,
#include<stdio.h>
struct date
{
struct time
{
int sec;
int min;
int hrs;
}time;
int day;
int month;
int year;
};
int main(void)
{
struct date d = {1,2,3,4,5,6}, *dp;
dp = &d;
printf(" sec=%d\n min=%d\n hrs=%d\n day=%d\n month=%d\n year=%d\n",dp->time.sec, dp->time.min, dp->time.hrs, dp->day, dp->month, dp->year);
}
Выход:
sec=1
min=2
hrs=3
day=4
month=5
year=6
Вы намерены иметь член типа 'struct time' в' struct date'? Если это так, вы не назовете его, и то, что вы написали, не компилируется. – e0k