2. Tipul de listare
Enumerarea descris cu cuvântul enum oficial și o listă separată prin virgulă de elemente de enumerare:
În mod implicit, primul element de transfer i se atribuie o valoare de 0. Fiecare element de transfer ulterior i se atribuie o valoare de 1 mai mare decât elementul precedent. Astfel, în exemplul anterior, = 0 false, true = 1.
Valoarea poate atribui în mod explicit un element de transfer:
enum (doi = doi, trei, patru, zece = 10. unsprezece, cincizeci = zece + 40>;
Două constante este setat la 2 valori, trei și patru constante sunt atribuite 3 și 4, unsprezece constantă - 11.
Numele constantelor enumerate trebuie să fie unic, iar valorile sunt aceleași. Avantajul aplicării transferului înainte de a descrie constantelor numite și # definesc directiva este că constantele înrudite mai clare; In plus, in timpul constantele de inițializare compilator poate efectua tipul de verificare.
operațiunile de transfer aritmetice sunt convertite în numere întregi. Deoarece tipurile de enumerare sunt definite de către utilizator, pot fi administrate pentru propriile lor operațiuni folosind Reacoperirea.
Valorile de enumerare Range determinată de numărul de biți necesar pentru a reprezenta toate valorile sale. Orice valoare întreagă poate duce în mod clar la un tip de enumerare, dar merge dincolo de gama sa, rezultatul nu este definit.
O enumerare poate avea un nume. Fiecare un enum numit descrie un tip unic și poate fi folosit ca o specificație de tip pentru a descrie identificatori:
Declarația enum după bretele de închidere poate declara imediat mai multe variabile de acest tip:
Trebuie să ținem cont de faptul că numele etichetei nu este un nume de tip adevărat. Numele de tip va fi în stare Exemplu enum. În consecință, variabilele trebuie declarate ca
Stare enum ProclStatus. Proc 2 Statut;
Cu toate acestea, puteți utiliza întotdeauna typedef de cuvinte cheie și introduceți pentru transferul de numele real nou. Acest lucru se face de obicei imediat:
enum typedef tip nume-numele etichetei;
typedef enum _Status
Error = -1> Stare;
Apoi, Stare va completa numele de tip enumerat. (Rețineți că eticheta am specificat numele _Status. Aceasta este o practică comună.)
Variabilele care au un tip de enumerare pot lua valori numai de elemente de listare. Când încercați să le dea alte valori, compilatorul va plânge. exemplu:
Stare psk = Succes;
Stare psk = 1; // eroare