|
Δομή Initializers στο γ
Για να παρέχει ένα σύνολο αρχικών τιμών για τη δομή, Initialisers μπορεί να προστεθεί στη δήλωση δήλωσης. Δεδομένου ότι οι μήνες αρχίζουν σε 1, αλλά η έναρξη σειρών σε μηδέν στο γ, ένα πρόσθετο στοιχείο στη θέση μηδέν κάλεσε τα παλιοπράγματα, έχει χρησιμοποιηθεί στο ακόλουθο παράδειγμα.
#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
};
int main()
{
int counter;
for (counter=1; counter<=12; counter++)
printf("%s is abbreviated as %s and has %d days\n",
month_details[counter].name,
month_details[counter].abbreviation,
month_details[counter].days);
return 0;
}
Και η παραγωγή θα επιδειχθεί ως εξής:
January is abbreviated as Jan and has 31 days
February is abbreviated as Feb and has 28 days
March is abbreviated as Mar and has 31 days
April is abbreviated as Apr and has 30 days
May is abbreviated as May and has 31 days
June is abbreviated as Jun and has 30 days
July is abbreviated as Jul and has 31 days
August is abbreviated as Aug and has 31 days
September is abbreviated as Sep and has 30 days
October is abbreviated as Oct and has 31 days
November is abbreviated as Nov and has 30 days
December is abbreviated as Dec and has 31 days |
|
|