struct date
{
int month;
int day;
int year;
};
// function prototype
struct date nextDay (struct date dateval);
#include <stdio.h>
int main ()
{
// two struct 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
//
// Perameters: 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
c3RydWN0IGRhdGUKewoJaW50IG1vbnRoOwoJaW50IGRheTsKCWludCB5ZWFyOwoJCn07CgovLyBmdW5jdGlvbiBwcm90b3R5cGUKc3RydWN0IGRhdGUgbmV4dERheSAoc3RydWN0IGRhdGUgZGF0ZXZhbCk7CgojaW5jbHVkZSA8c3RkaW8uaD4KaW50IG1haW4gKCkKewoJLy8gdHdvIHN0cnVjdCB2YXJpYWJsZXMKCXN0cnVjdCBkYXRlIHRvZGF5LCB0b21vcnJvdzsKCQoJLy8gc2V0IHRvZGF5IHRvIHRoZSBwcm9wZXIgZGF0ZQoJdG9kYXkuZGF5ID0gMTc7Cgl0b2RheS55ZWFyID0gMTk5NjsKCXRvZGF5Lm1vbnRoID0gMTA7CgkKCS8vIHRoaXMgc3RhdGVtZW50IGlsbHVzdHJhdGVzIHRoZSBhYmlsaXR5IHRvIHBhc3MgYSBzdHJ1Y3R1cmUKCS8vIHRvIGEgZnVuY3Rpb24gYW5kIHRvIHJldHVybiAgb25lIGFzIHdlbGwKCXRvbW9ycm93ID0gbmV4dERheSAodG9kYXkpOyAvLyB0b21vcnJvdyB1cGRhdGVkCgkKCXByaW50ZiAoIiVkLyVkLyVkIFxuIiwgdG9tb3Jyb3cubW9udGgsCgkJCQkJCQl0b21vcnJvdy5kYXksCgkJCQkJCQl0b21vcnJvdy55ZWFyLTE5MDApOwoJcmV0dXJuICgwKTsKfQoKLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vIEZ1bmN0aW9uOiBuZXh0RGF5Ci8vCi8vIERlc2NyaXB0aW9uOiBSZXR1cm5zIHRoZSBuZXh0IGRheSBnaXZlbiBhIGRhdGUKLy8KLy8gUGVyYW1ldGVyczogZGF0ZXZhbCAtIGEgZ2l2ZW4gZGF0ZQovLwovLyBSZXR1cm5zOiBkYXRldmFsIC0gdXBkYXRlZCBuZXh0IGRheSBkYXRlCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKc3RydWN0IGRhdGUgbmV4dERheSAoc3RydWN0IGRhdGUgZGF0ZXZhbCkKewoJKytkYXRldmFsLmRheTsgLy8gYWRkIGEgZGF5CgkKCXJldHVybiAoZGF0ZXZhbCk7IC8vIHJldHVybiB1cGRhdGVkIHN0cnVjdHVyZQoJCn0gLy9uZXh0RGF5