struct date
{
int month;
int day;
int year;
};
/* function prototype */
struct date nextDay (struct date dateval);
#include <stdio.h>
int main ()
{
/* two structure variables */
struct date today, tomorrow;
/* set today to the proper date */
today.day = 17;
today.year = 1996;
today.month = 10;
/* This statement illustrates the ability to pass a */
/* structure to a function and to return one as well */
tomorrow = nextDay (today); /* tomorrow updated */
printf ("%d/%d/%d\n", tomorrow.month,
tomorrow.day,
tomorrow.year-1900);
return (0);
}
/********************************************************
** Function: nextDay
**
** Description: Returns the next day given a date
**
** Parameters: dateval - a given date
**
** Returns: dateval - updated next day date
**
*********************************************************/
struct date nextDay (struct date dateval)
{
++dateval.day; /* add a day */
return (dateval); /* return updated structure */
} /* nextDay */
c3RydWN0IGRhdGUKewogICAgaW50IG1vbnRoOwogICAgaW50IGRheTsKICAgIGludCB5ZWFyOwp9OwoKLyogZnVuY3Rpb24gcHJvdG90eXBlICovCnN0cnVjdCBkYXRlIG5leHREYXkgKHN0cnVjdCBkYXRlIGRhdGV2YWwpOwoKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYWluICgpCnsKCiAgICAvKiB0d28gc3RydWN0dXJlIHZhcmlhYmxlcyAqLwogICAgc3RydWN0IGRhdGUgdG9kYXksIHRvbW9ycm93OwoKICAgIC8qIHNldCB0b2RheSB0byB0aGUgcHJvcGVyIGRhdGUgKi8KICAgIHRvZGF5LmRheSA9IDE3OwogICAgdG9kYXkueWVhciA9IDE5OTY7CiAgICB0b2RheS5tb250aCA9IDEwOwoKICAgIC8qIFRoaXMgc3RhdGVtZW50IGlsbHVzdHJhdGVzIHRoZSBhYmlsaXR5IHRvIHBhc3MgYSAgKi8KICAgIC8qIHN0cnVjdHVyZSB0byBhIGZ1bmN0aW9uIGFuZCB0byByZXR1cm4gb25lIGFzIHdlbGwgKi8KCiAgICB0b21vcnJvdyA9IG5leHREYXkgKHRvZGF5KTsgLyogdG9tb3Jyb3cgdXBkYXRlZCAqLwoKICAgIHByaW50ZiAoIiVkLyVkLyVkXG4iLCB0b21vcnJvdy5tb250aCwKICAgICAgICAgICAgICAgICAgICAgICAgICB0b21vcnJvdy5kYXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9tb3Jyb3cueWVhci0xOTAwKTsKCiAgICByZXR1cm4gKDApOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiogRnVuY3Rpb246ICBuZXh0RGF5CioqCioqIERlc2NyaXB0aW9uOiAgUmV0dXJucyB0aGUgbmV4dCBkYXkgZ2l2ZW4gYSBkYXRlCioqCioqIFBhcmFtZXRlcnM6ICBkYXRldmFsIC0gYSBnaXZlbiBkYXRlCioqCioqIFJldHVybnM6ICAgICBkYXRldmFsIC0gdXBkYXRlZCBuZXh0IGRheSBkYXRlCioqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnN0cnVjdCBkYXRlIG5leHREYXkgKHN0cnVjdCBkYXRlIGRhdGV2YWwpIAp7CgogICAgKytkYXRldmFsLmRheTsgLyogYWRkIGEgZGF5ICovIAoKICAgIHJldHVybiAoZGF0ZXZhbCk7IC8qIHJldHVybiB1cGRhdGVkIHN0cnVjdHVyZSAqLwoKfSAvKiBuZXh0RGF5ICov