enthaltene Zahlenwerte einer enum ermitteln



  • Ist es möglich direkt abzufragen ob ein bestimmter Zahlenwert in einer enum enthalten ist?



  • Hallo,

    soll die Frage gleichbedeutend sein mit:

    Gibt es eine ANSI-C-Standard-Funktion, z.B. "findValueInEnum", die zurückgibt, ob eine "Zahl" in einer enum durch ihre Definition belegt wurde?

    Wenn ja, dann lautet die Antwort: nein.

    MfG



  • funktion selber code, obwohl das sinnlos ist, kannst auch ein einfaches range-checking durchführen, sind ja letzten endes doch nur konstanten...



  • enum Foobar { foo, bar, baz, quux, ende };
    

    Und dann testen, ob der Wert kleiner als ende ist. Funktioniert natürlich nicht, wenn die enum-Konstanten nicht dicht liegen.



  • Ist aber leider der Fall. Ich dachte man könnte enum halt eventuell zusätzlich noch auf dem anderen Weg nutzen, also nicht nur über Namen Werte erhalten, sondern auch über Werte ermitteln ob der Wert in dem enum enthalten ist.

    Der Zweck war übrigens die Funktionscodes eines Protokolls aufzulisten, so dass ich sie zum einen über Namen ansprechen, aber gleichzeitig auch überprüfen kann ob erhaltene Funktionscodes im enum vorhanden und somit gültig sind.

    Was wäre denn eine bessere/sinnvollere Umsetzung?


Anmelden zum Antworten