In questo tutorial imparerai l'enumerazione (enumerazione) nella programmazione C con l'aiuto di esempi.
Nella programmazione C, un tipo di enumerazione (chiamato anche enum) è un tipo di dati costituito da costanti integrali. Per definire le enumerazioni, enum
viene utilizzata la parola chiave.
enum flag (const1, const2,…, constN);
Per impostazione predefinita, const1 è 0, const2 è 1 e così via. È possibile modificare i valori predefiniti degli elementi enum durante la dichiarazione (se necessario).
// Modifica dei valori predefiniti delle costanti enum enum seme (club = 0, quadri = 10, cuori = 20, picche = 3,);
Dichiarazione di tipo enumerato
Quando si definisce un tipo di enumerazione, viene creato il progetto per la variabile. Ecco come puoi creare variabili di tipi enum.
enum boolean (false, true); enum boolean check; // dichiara una variabile enum
Qui enum boolean
viene creato un controllo variabile del tipo .
Puoi anche dichiarare variabili enum come questa.
enum boolean (false, true) check;
Qui, il valore di false
è uguale a 0 e il valore di true
è uguale a 1.
Esempio: tipo di enumerazione
#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; )
Produzione
4 ° giorno
Perché vengono utilizzate le enumerazioni?
Una variabile enum può assumere un solo valore. Ecco un esempio per dimostrarlo,
#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; )
Produzione
Dimensione della variabile enum = 4 byte
Qui, stiamo ottenendo 4 perché la dimensione di int
è 4 byte.
Questo rende enum una buona scelta per lavorare con i flag.
Come usare le enumerazioni per le bandiere?
Facciamo un esempio,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Supponiamo che tu stia progettando un pulsante per l'applicazione Windows. Puoi impostare i flag ITALICS, BOLD e UNDERLINE per lavorare con il testo.
C'è una ragione per cui tutte le costanti integrali sono una potenza di 2 nello pseudocodice di cui sopra.
// In binario ITALICO = 00000001 GRASSETTO = 00000010 SOTTOLINEATO = 00000100
Poiché le costanti integrali sono una potenza di 2, è possibile combinare due o più flag contemporaneamente senza sovrapporsi utilizzando OR bit per bit | operatore. Ciò ti consente di scegliere due o più flag contemporaneamente. Per esempio,
#include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; )
Produzione
5
Quando l'output è 5, sai sempre che vengono utilizzati grassetto e sottolineato.
Inoltre, puoi aggiungere flag in base alle tue esigenze.
if (myDesign & ITALICS) (// code for italics)
Qui abbiamo aggiunto il corsivo al nostro design. Nota, solo il codice per il corsivo è scritto all'interno if
dell'istruzione.
Puoi realizzare quasi tutto nella programmazione C senza usare enumerazioni. Tuttavia, possono essere molto utili in determinate situazioni.