从C中的struct读取值

时间:2014-03-12 11:55:54

标签: c struct

我试图从结构中读取一年来检查那一年是否是闰年。

目前我的代码是:

typedef struct {
    int day;
    int month;
    int year;

} date;

阅读它的地方是:

  int is_date_valid(date *d) {

    printf("Year = %d\n", d.year);
    //Checking if year is a leap year
    if ( d->year%400 == 0)
        printf("%d is a leap year.\n", d.year);
    else if ( d->year%100 == 0)
        printf("%d is not a leap year.\n", d.year);
    else if ( d->year%4 == 0 )
        printf("%d is a leap year.\n", d.year);
    else
        printf("%d is not a leap year.\n", d.year); 



 return 0;
}

此刻,年份未被读入(用户输入的年份,并且从主要调用此功能)。我不确定如何在此函数中调用要测试的结构中的年份。我真的很感激任何人都可以提供帮助!感谢

1 个答案:

答案 0 :(得分:0)

方法1

int is_date_valid(date *d)
{
    //access like d->year
}

main()
{
    date d;
    // get input here
    is_date_valid(&d)
}

方法2

int is_date_valid(int year)
{
    // use year here
}

main()
{
    date d;
    // get input here
    is_date_valid(d.year)
}

注意:选项2仅在函数

内使用年份时有效