Condividi tramite


Dichiarazioni di enumerazione c

Un'enumerazione è costituito da un insieme di costanti denominate di tipo Integer.Una dichiarazione del tipo di enumerazione fornisce il nome del tag (facoltativo) di enumerazione e definisce l'insieme di identificatori Integer denominati (denominate “l'insieme di enumerazione,„ costanti dell'enumeratore„, “enum„, o “membro„).Una variabile con un tipo di enumerazione archivia uno dei valori di definito set di enumerazione da quel tipo.

variabili di enum il tipo può essere utilizzato in espressioni di indicizzazione e come operandi di tutti gli operatori aritmetici e relazionali.Le enumerazioni forniscono un'alternativa a #define direttiva per il preprocessore insieme ai vantaggi che i valori possono essere generati automaticamente e obbedire alle regole standard di definizione.

In ANSI c, espressioni che definiscono il valore di una costante di enumeratori presentano sempre int tipo; pertanto, la memoria associata a una variabile di enumerazione è l'archiviazione di associazione per un singolo int valore.Una costante di enumerazione o un valore di tipo enumerato può essere utilizzato in qualsiasi punto le autorizzazioni del linguaggio C un'espressione Integer.

Sintassi

  • enum-identificatore:
    enum identificatorescegliere**{** enumeratore-elenco }

    enum identificatore

L'elemento facoltativo identificatore denominare il tipo di enumerazione definito da enumeratore-elenco.Questo identificatore viene spesso denominato “il tag„ dell'enumerazione specificata dall'elenco.Un identificatore del tipo del form

enum identifier { enumerator-list }

dichiara identificatore per essere il tag dell'enumerazione specificata da enumeratore-elenco non terminal.enumeratore-elenco definisce “contenuto dell'enumeratore.„ enumeratore-elenco sono riportati di seguito.

Se la dichiarazione di un tag è visibile, le dichiarazioni successive che utilizzano il tag ma omette enumeratore-elenco specificare il tipo enumerato dichiarato in precedenza.Il tag deve fare riferimento a un tipo di enumerazione definito e tale tipo di enumerazione deve trovarsi nell'ambito corrente.Poiché il tipo di enumerazione viene definito altrove, enumeratore-elenco non viene visualizzata in questa dichiarazione.Dichiarazioni dei tipi derivati dalle enumerazioni e typedef le dichiarazioni dei tipi di enumerazione possono utilizzare il tag di enumerazione prima che il tipo di enumerazione è definito.

Sintassi

  • enumeratore-elenco:
    enumeratore

    enumeratore-elenco**,** enumerator

  • enumerator:
    enumerazione-costante

    enumerazione-costante = espressione costante

  • enumerazione-costante:
    identificatore

ciascuno enumerazione-costante in enumerazione-elenco assegnare un nome a un valore del set di enumerazione.per impostazione predefinita, il primo enumerazione-costante è associato al valore 0.Nell'enumerazione-costante nell'elenco è associato al valore di ( espressione costante + 1), a meno che in modo esplicito lo si associa a un altro valore.Il nome del controllo enumerazione-costante equivale al valore.

È possibile utilizzare enumerazione-costante = espressione costante per eseguire l'override della sequenza predefinita di valori.Pertanto, se enumerazione-costante = espressione costante viene visualizzato in enumeratore-elenco, enumerazione-costante è associato al valore fornito da l espressione costante. espressione costante deve avere int digitare e possono essere negativo.

Le regole seguenti si applicano ai membri di enumerazione impostata:

  • un set di enumerazione può contenere i valori costanti duplicati.Ad esempio, è possibile associare il valore 0 con due identificatori diversi, talvolta denominato null e zero, nello stesso gruppo.

  • Gli identificatori nell'elenco di enumerazione devono essere univoci da altri identificatori nello stesso ambito con la stessa visibilità, inclusi i nomi delle variabili comuni e gli identificatori in altri elenchi di enumerazione.

  • I tag di enumerazione conformi alle regole standard di definizione.Devono essere distinte da altri enumerazione, la struttura e tag di unione con la stessa visibilità.

Esempi

Questi esempi vengono illustrate le dichiarazioni di enumerazione:

enum DAY            /* Defines an enumeration type    */
{
    saturday,       /* Names day and declares a       */
    sunday = 0,     /* variable named workday with    */ 
    monday,         /* that type                      */
    tuesday,
    wednesday,      /* wednesday is associated with 3 */
    thursday,
    friday
} workday;

Il valore 0 è associato saturday per impostazione predefinita.l'identificatore sunday in modo esplicito è impostato su 0.Gli identificatori restanti vengono forniti i valori da 1 a 5 per impostazione predefinita.

In questo esempio, un valore dal set DAY viene assegnato a una variabile today.

enum DAY today = wednesday;

Si noti che il nome della costante di enumerazione viene utilizzato per assegnare il valore.Da DAY il tipo di enumerazione era dichiarato, solo il tag di enumerazione DAY è necessario.

Per assegnare in modo esplicito un valore Integer a una variabile di un tipo di dati enumerato, utilizzare un cast di tipo:

workday = ( enum DAY ) ( day_value - 1 );

Verrà eseguito il cast è consigliabile in C# ma non è obbligatoria.

enum BOOLEAN  /* Declares an enumeration data type called BOOLEAN */
{
    false,     /* false = 0, true = 1 */
    true 
}; 

enum BOOLEAN end_flag, match_flag; /* Two variables of type BOOLEAN */

Questa dichiarazione può essere specificata come

enum BOOLEAN { false, true } end_flag, match_flag;\

o come

enum BOOLEAN { false, true } end_flag;
enum BOOLEAN match_flag;

Un esempio che utilizza queste variabili potrebbe essere simile al seguente:

if ( match_flag == false )
    {
     .
     .   /* statement */ 
     .
    }
    end_flag = true;

I tipi di dati senza nome dell'enumeratore possono essere dichiarati.Il nome del tipo di dati viene omesso, ma le variabili possono essere dichiarate.la variabile response è una variabile di tipo definito:

enum { yes, no } response;

Vedere anche

Riferimenti

Dichiarazioni di enumerazione C++