C enum (wyliczenie)

W tym samouczku nauczysz się wyliczania (wyliczania) w programowaniu w języku C za pomocą przykładów.

W programowaniu w C typ wyliczeniowy (nazywany również wyliczeniem) to typ danych, który składa się ze stałych całkowitych. Aby zdefiniować wyliczenia, enumużywane jest słowo kluczowe.

 enum flag (const1, const2,…, constN); 

Domyślnie const1 to 0, const2 to 1 i tak dalej. Możesz zmienić wartości domyślne elementów enum podczas deklaracji (w razie potrzeby).

 // Zmiana domyślnych wartości stałych wyliczenia kolor wyliczenia (klub = 0, karo = 10, serca = 20, pik = 3,);

Deklaracja typu wyliczonego

Podczas definiowania typu wyliczenia tworzony jest plan zmiennej. Oto, jak można tworzyć zmienne typów wyliczeniowych.

enum boolean (false, true); enum boolean check; // deklarowanie zmiennej wyliczeniowej

Tutaj enum booleantworzone jest zmienne sprawdzanie typu .

Możesz także zadeklarować zmienne wyliczeniowe w ten sposób.

 enum boolean (false, true) check; 

Tutaj wartość falsejest równa 0, a wartość truejest równa 1.

Przykład: typ wyliczenia

 #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; ) 

Wynik

 Dzień 4

Dlaczego używane są wyliczenia?

Zmienna wyliczeniowa może mieć tylko jedną wartość. Oto przykład, aby to zademonstrować,

 #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; ) 

Wynik

 Rozmiar zmiennej wyliczeniowej = 4 bajty

Tutaj otrzymujemy 4, ponieważ rozmiar intwynosi 4 bajty.

To sprawia, że ​​enum jest dobrym wyborem do pracy z flagami.

Jak używać wyliczeń do flag?

Weźmy przykład,

 enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button; 

Załóżmy, że projektujesz przycisk dla aplikacji Windows. Możesz ustawić flagi ITALICS, BOLD i UNDERLINE, aby pracować z tekstem.

Jest powód, dla którego wszystkie stałe całkowe mają potęgę 2 w powyższym pseudokodzie.

 // Binarnie ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100 

Ponieważ stałe całkowite są potęgą 2, możesz połączyć dwie lub więcej flag jednocześnie bez nakładania się za pomocą bitowego OR | operator. Umożliwia to jednoczesne wybranie dwóch lub więcej flag. Na przykład,

 #include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; ) 

Wynik

 5

Gdy wynik ma wartość 5, zawsze wiesz, że używane jest pogrubienie i podkreślenie.

Możesz także dodawać flagi zgodnie z własnymi wymaganiami.

 if (myDesign & ITALICS) (// kod dla kursywy)

Tutaj dodaliśmy kursywę do naszego projektu. Uwaga: wewnątrz ifinstrukcji zapisany jest tylko kod kursywy .

Możesz osiągnąć prawie wszystko w programowaniu w C bez użycia wyliczeń. Jednak w niektórych sytuacjach mogą być bardzo przydatne.

Interesujące artykuły...