În acest tutorial, veți afla despre enum (enumerare) în programarea C cu ajutorul exemplelor.
În programarea C, un tip de enumerare (numit și enum) este un tip de date care constă din constante integrale. Pentru a defini enumeri, enum
se folosește cuvântul cheie.
enum flag (const1, const2, …, constN);
În mod implicit, const1 este 0, const2 este 1 și așa mai departe. Puteți modifica valorile implicite ale elementelor enum în timpul declarației (dacă este necesar).
// Modificarea valorilor implicite ale constantelor enum suit enum (club = 0, diamante = 10, inimi = 20, pică = 3,);
Declarație de tip enumerată
Când definiți un tip enum, se creează planul variabilei. Iată cum puteți crea variabile de tipuri enum.
enum boolean (fals, adevărat); enum boolean check; // declararea unei variabile enum
Aici enum boolean
se creează o verificare variabilă de tip .
De asemenea, puteți declara astfel de variabile enum.
enum boolean (false, true) verificare;
Aici, valoarea lui false
este egală cu 0, iar valoarea lui true
este egală cu 1.
Exemplu: Tipul de enumerare
#include enum week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); int main() ( // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; )
Ieșire
Ziua 4
De ce se folosesc enumere?
O variabilă enum poate lua o singură valoare. Iată un exemplu pentru a-l demonstra,
#include enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; )
Ieșire
Dimensiunea variabilei enum = 4 octeți
Aici, obținem 4, deoarece dimensiunea int
este de 4 octeți.
Acest lucru face din enum o alegere bună pentru a lucra cu steaguri.
Cum se utilizează enumere pentru steaguri?
Să luăm un exemplu,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Să presupunem că proiectați un buton pentru aplicația Windows. Puteți seta steaguri ITALICS, BOLD și UNDERLINE pentru a lucra cu text.
Există un motiv pentru care toate constantele integrale sunt o putere de 2 în pseudocodul de mai sus.
// În binar ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Deoarece constantele integrale sunt o putere de 2, puteți combina două sau mai multe semnalizatoare simultan fără a se suprapune folosind OR bit | operator. Acest lucru vă permite să alegeți două sau mai multe steaguri simultan. De exemplu,
#include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; )
Ieșire
5
Când ieșirea este 5, știți întotdeauna că se utilizează caractere aldine și subliniate.
De asemenea, puteți adăuga steaguri în funcție de cerințele dvs.
if (myDesign & ITALICS) (// cod pentru cursiv)
Aici, am adăugat cursiv la designul nostru. Notă, numai codul pentru cursiv este scris în if
declarație.
Puteți realiza aproape orice în programarea C fără a utiliza enumerări. Cu toate acestea, pot fi destul de la îndemână în anumite situații.