Enum-urile in C

Enum-urile in C

Definiție: Enum-urile sunt un set de constante încapsulate sub forma unui tip de date care se pot definii de către utilizator cu valori predefinite sau cu valori implicite. Enum-uri cu valori predefinit au valorile setate explicit de către programator. Se poate vedea în exemplele de mai jos cum se declara și cum se poate folosi.


typedef enum
{
  ZERO = 0,
  UNU = 1
} MyEnumType;

typedef enum
{
  FALSE = 0xFFU,
  TRUE = 0x00
} BooleanType;

int main()
{
BooleanType retValue;

retValue = TRUE;
printf("%d",retValue);

retValue = FALSE;
printf("%d",retValue);


return 0;
}

Valori implicite

Enum-uri cu valori implicite au valorile stabilite de către compilator în ordine crescătoare începând de la zero.


typedef enum
{
  FALSE,
  TRUE
} BooleanType;

typedef enum
{
  ZERO,
  UNU,
  DOI,
  TREI,
  PATRU,
  CINCI,
  SASE,
  SAPTE,
  OPT,
  NOUA,
  A,
  B,
  C,
  D,
  E,
  F
} Baza16Type;

Utilizare

Aceste structuri de date sunt foarte utile pentru că datele sunt organizate, practic fiecare număr poate însemna ceva. Există totuși o problemă majoră când vine vorba de compilatoare diferite și alocarea memoriei pentru aceste variabile. Aceeaşi variabilă poate avea dimensiuni diferite pentru compilatoare diferite. În schimb pentru programarea sub windows enum-urile sunt foarte des folosite. Personal mi se par foarte ușor de folosit și ușor de înțeles.
Nu e mare filozofie, sunt niște constante organizate într-un anumit fel care practic nu te lasă să greşeşti asignarea variabilei de acest tip. Dacă se foloseşte la asignare orice alta valoare din afara intervalului compilatorul va returna o eroare. Dacă se foloseşte la asignare o valoare numerica care este totuși egala cu un termen din enumerare atunci şi în acest caz va returna o eroare. 

Referinte:

C Enumeration Declarations
C_and_syntactically_similar_languages

Etichete

Afișați mai multe

Arhiva

Afișați mai multe