C/Enumerazioni, strutture e unioni/Enumerazioni
Wikibooks, manuali e libri di testo liberi.
In C, un'enumerazione o variabile enumerativa è un tipo di dato che può assumere solo valori scelti dall'utente. Questi valori vengono rappresentati con delle costanti, ognuna corrispondente ad un valore intero.
[modifica] Sintassi
enum nome_del_tipo { lista_dei_valori } variabili;
[modifica] Esempi d'uso
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { enum umano { a_casa, al_lavoro, in_vacanza } mario_rossi; char stato[20]; printf("Dov'è Mario Rossi? "); scanf("%s", stato); if (!strcmp(stato, "A_casa")) { mario_rossi=a_casa; } else if (!strcmp(stato, "Al_lavoro")) { mario_rossi=al_lavoro; } else if (!strcmp(stato, "In_vacanza")) { mario_rossi=in_vacanza; } printf("Status numerico di Mario Rossi: %d", mario_rossi); return 0; }
Questo programma tramuta lo stato di Mario Rossi immesso dall'utente in un numero: A_casa=0, Al_lavoro=1, In_vacanza=2.
È anche possibile assegnare un numero a scelta ad ogni numerazione. Se i numeri successivi non sono specificati, il compilatore procederà in ordine crescente.
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { enum umano { a_casa=25, al_lavoro=56, in_vacanza=57 } mario_rossi; char stato[20]; printf("Dov'è Mario Rossi? "); scanf("%s", stato); if (!strcmp(stato, "A_casa")) { mario_rossi=a_casa; } else if (!strcmp(stato, "Al_lavoro")) { mario_rossi=al_lavoro; } else if (!strcmp(stato, "In_vacanza")) { mario_rossi=in_vacanza; } printf("Status numerico di Mario Rossi: %d", mario_rossi); return 0; }
In questo caso A_casa=25, Al_lavoro=56, In_Vacanza=57.