ネストされた構造は基本的に構造内の構造です。あなたの例では、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 date'に' struct time'型のメンバーを持っていますか?もしそうなら、あなたはそれに名前をつけなかった。あなたが書いたものはコンパイルされない。 – e0k