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, enum
uż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 boolean
tworzone jest zmienne sprawdzanie typu .
Możesz także zadeklarować zmienne wyliczeniowe w ten sposób.
enum boolean (false, true) check;
Tutaj wartość false
jest równa 0, a wartość true
jest 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 int
wynosi 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 if
instrukcji 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.