49 char jmeno[NAMELEN+1];
50 char prijmeni[NAMELEN+1];
56 printf(
"%20s %20s, %02d.%02d.%d\n", s.jmeno, s.prijmeni, s.narozen.den, s.narozen.mesic, s.narozen.rok);
75 diff = (d1.rok << 16 + d1.mesic << 8 + d1.den) - (d2.rok << 16 + d2.mesic << 8 + d2.den);
77 return diff < 0 ? -1 : diff ? 1 : 0;
81 Student stary = {.jmeno=
"Pepa",.prijmeni=
"Starý", .narozen={.rok=1921,.mesic=10,.den=11}};
82 Student ascii = {.jmeno=
"Pepa",.prijmeni=
"Ascii", .narozen={.rok=1921,.mesic=12,.den=31}};
84 #define STUDENTI_VEK(s1, s2) do { int diff=porovnej_vek((s1).narozen,(s2).narozen); printf("%s %s je %s %s %s.\n",\
85 (s1).jmeno,(s1).prijmeni, diff<0 ? "starší než" : diff ? "mladší než" : "stejně mladý jako", \
86 (s2).jmeno,(s2).prijmeni); } while(0)
89 Student lokalni ={.jmeno=
"František",.prijmeni=
"Lokální",.narozen={.den=1,.mesic=2,.rok=1933}};
90 Student lokalni2={.jmeno=
"František",.prijmeni=
"Lókální",.narozen={.den=2,.mesic=2,.rok=1922}};
95 strcpy(lokal.jmeno,
"Jeníček");
96 strcpy(lokal.prijmeni,
"Mařenka");
97 lokal.narozen.rok=1962;
98 lokal.narozen.mesic=5;
101 printf(
" 1 2 1 2\n");
102 printf(
"12345678901234567890 12345678901234567890\n");
103 student_vypis(ascii);
104 student_vypis(stary);
105 student_vypis(lokalni);
106 student_vypis(lokalni2);
107 student_vypis(lokal);
109 STUDENTI_VEK(stary, lokalni);
110 STUDENTI_VEK(lokalni, stary);
111 STUDENTI_VEK(lokalni, lokalni);
112 STUDENTI_VEK(lokalni, lokal);
int porovnej_vek(Datum d1, Datum d2)