从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; } 

目前,年份未被读入(用户输入的年份和从主要调用此function)。 我不知道如何在这个函数中测试结构中的年份。 我真的很感激任何人都可以给予的帮助! 谢谢

方法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仅在函数内使用年份时有效