|
Het overgaan van Structuren tot Functies in C
Overgaand Structuren tot Functies in C als parameter aan een functie, kunnen de structuren als parameter tot een functie worden overgegaan, enkel zoals om het even welk van de basisgegevenstypes. Het volgende voorbeeld gebruikt een structuur genoemd datum die wordt overgegaan tot een functie isLeapYear heeft om te bepalen als het jaar een schrikkeljaar is.
Normaal zou u slechts de dagwaarde overgaan, maar de gehele structuur wordt overgegaan om het overgaan van structuren tot functies te illustreren.
#include <stdio.h>
#include <string.h>
struct month
{
char *name;
char *abbreviation;
int days;
} month_details[] =
{
"Junk", "Junk", 0,
"January", "Jan", 31,
"February", "Feb", 28,
"March", "Mar", 31,
"April", "Apr", 30,
"May", "May", 31,
"June", "Jun", 30,
"July", "Jul", 31,
"August", "Aug", 31,
"September", "Sep", 30,
"October", "Oct", 31,
"November", "Nov", 30,
"December", "Dec", 31
};
struct date
{
int day;
int month;
int year;
};
int isLeapYear(struct date d);
int main()
{
struct date d;
printf("Enter the date (eg: 11/11/1980): ");
scanf("%d/%d/%d", &d.day, &d.month, &d.year);
printf("The date %d %s %d is ", d.day,
month_details[d.month].name, d.year);
if (isLeapYear(d) == 0)
printf("not ");
puts("a leap year");
return 0;
}
int isLeapYear(struct date d)
{
if ((d.year % 4 == 0 && d.year % 100 != 0) ||
d.year % 400 == 0)
return 1;
return 0;
}
En de Uitvoering van het programma zal als volgt zijn:
Enter the date (eg: 11/11/1980): 9/12/1980
The date 9 December 1980 is a leap year |
|
|