C/Enumerazioni, strutture e unioni/Enumerazioni
Aspetto
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.
Sintassi
[modifica | modifica sorgente]
enum nome_del_tipo { lista_dei_valori } variabili;
Esempi d'uso
[modifica | modifica sorgente] #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
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>
#include <string.h>
int main()
{
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
.