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 = 2;
today.year = 2026;
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, not today, will be updated */
printf ("%d/%d/%d\n", tomorrow.month, tomorrow.day, tomorrow.year-2000); /* Y2K Problem? */
return (0);
}
struct date nextDay (struct date dateval) /* notice the return type - struct date */
{
++dateval.day; /* add a day, does not check for max days in the month */
return (dateval); /* returned updated structure (all members) back to the calling function */
} /* nextDay */
c3RydWN0IGRhdGUKewogICAgaW50IG1vbnRoOwogICAgaW50IGRheTsKICAgIGludCB5ZWFyOwp9OwoKLyogZnVuY3Rpb24gcHJvdG90eXBlICovCnN0cnVjdCBkYXRlIG5leHREYXkgKHN0cnVjdCBkYXRlIGRhdGV2YWwpOwoKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYWluICgpCnsKCiAgICAvKiB0d28gc3RydWN0dXJlIHZhcmlhYmxlcyAqLwogICAgc3RydWN0IGRhdGUgdG9kYXksIHRvbW9ycm93OwoKICAgIC8qIHNldCB0b2RheSB0byB0aGUgcHJvcGVyIGRhdGUgKi8KICAgIHRvZGF5LmRheSA9IDI7CiAgICB0b2RheS55ZWFyID0gMjAyNjsKICAgIHRvZGF5Lm1vbnRoID0gMTA7CgogICAgLyogVGhpcyBzdGF0ZW1lbnQgaWxsdXN0cmF0ZXMgdGhlIGFiaWxpdHkgdG8gcGFzcyBhICAqLwogICAgLyogc3RydWN0dXJlIHRvIGEgZnVuY3Rpb24gYW5kIHRvIHJldHVybiBvbmUgYXMgd2VsbCAqLwoKICAgIHRvbW9ycm93ID0gbmV4dERheSAodG9kYXkpOyAvKiB0b21vcnJvdywgbm90IHRvZGF5LCB3aWxsIGJlIHVwZGF0ZWQgKi8KCiAgICBwcmludGYgKCIlZC8lZC8lZFxuIiwgdG9tb3Jyb3cubW9udGgsIHRvbW9ycm93LmRheSwgdG9tb3Jyb3cueWVhci0yMDAwKTsgLyogWTJLIFByb2JsZW0/ICovCgogICAgcmV0dXJuICgwKTsKfQoKc3RydWN0IGRhdGUgbmV4dERheSAoc3RydWN0IGRhdGUgZGF0ZXZhbCkgLyogbm90aWNlIHRoZSByZXR1cm4gdHlwZSAtIHN0cnVjdCBkYXRlICovCnsKCiAgICArK2RhdGV2YWwuZGF5OyAvKiBhZGQgYSBkYXksIGRvZXMgbm90IGNoZWNrIGZvciBtYXggZGF5cyBpbiB0aGUgbW9udGggKi8KCiAgICByZXR1cm4gKGRhdGV2YWwpOyAvKiByZXR1cm5lZCB1cGRhdGVkIHN0cnVjdHVyZSAoYWxsIG1lbWJlcnMpIGJhY2sgdG8gdGhlIGNhbGxpbmcgZnVuY3Rpb24gKi8KCn0gLyogbmV4dERheSAqLyA=