Was ist eine Enumeration in Programmiersprachen?

Kurz für Aufzählung, ein Aufzählungsvariablentyp kann in C (ANSI, nicht das ursprüngliche K & R), C ++ und C # gefunden werden. Die Idee ist, dass anstelle eines int zur Darstellung einer Wertemenge ein Typ mit einer eingeschränkten Wertemenge verwendet wird.

Zum Beispiel, wenn wir die Farben des Regenbogens verwenden, die sind

  1. rot
  2. Orange
  3. Gelb
  4. Grün
  5. Blau
  6. Indigo
  7. Violett

Wenn keine Aufzählungen vorhanden sind, können Sie eine verwenden #definieren (in C) oder const in C ++ / C #, um diese Werte anzugeben. Z.B

Zu viele Ints zum Zählen!

Das Problem dabei ist, dass es viel mehr Tinten als Farben gibt. Wenn violett den Wert 7 hat und das Programm einer Variablen den Wert 15 zuweist, handelt es sich eindeutig um einen Fehler, der jedoch möglicherweise nicht erkannt wird, da 15 ein gültiger Wert für ein int ist.

Aufzählungen zur Rettung

Eine Enumeration ist ein benutzerdefinierter Typ, der aus einer Reihe benannter Konstanten besteht, die als Enumeratoren bezeichnet werden. Die Farben des Regenbogens würden folgendermaßen abgebildet:

Jetzt verwendet der Compiler intern ein int, um diese Werte zu speichern. Wenn keine Werte angegeben werden, ist Rot 0, Orange 1 usw.

Was ist der Nutzen einer Enumeration??

Der Punkt ist, dass Regenbogenfarben ist ein Typ und nur andere Variablen desselben Typs können diesem zugewiesen werden. C ist einfacher (dh weniger streng getippt), aber C ++ und C # lassen keine Zuweisung zu, es sei denn, Sie erzwingen dies mithilfe einer Umwandlung.

Sie sind nicht mit diesen vom Compiler generierten Werten konfrontiert. Sie können ihnen wie hier gezeigt eine eigene Ganzzahlkonstante zuweisen.

Blau und Indigo mit demselben Wert zu haben, ist kein Fehler, da Enumeratoren Synonyme wie Scharlach und Purpur enthalten können.

Sprachunterschiede

In C muss der Variablendeklaration das Wort vorangestellt werden enum wie in

In C ++ wird es jedoch nicht als benötigt Regenbogenfarben ist ein eindeutiger Typ, für den kein Aufzählungstyp-Präfix erforderlich ist.

In C # wird über den Typnamen wie in auf die Werte zugegriffen

Was ist der Sinn von Aufzählungen??

Die Verwendung von Aufzählungen erhöht den Abstraktionsgrad und lässt den Programmierer darüber nachdenken, was die Werte bedeuten, anstatt sich Gedanken darüber zu machen, wie sie gespeichert werden und auf welche Weise auf sie zugegriffen wird. Dies reduziert das Auftreten von Fehlern.