Zulässige Zeichen im Enums



  • Hallo Ihr,

    kurze Frage:
    Welche Zeichen sind für die Namen nicht zulässig ?

    Ein Beispiel:

    enum eVorNamen
    {
        THOMAS,                       //OK
        PETER,                        //OK
        CHRISTIN_KRISTIN,             //OK
        CHRISTIN/KRISTIN,             //Weiss nicht
        CHRISTIN&KRISTIN              //Weiss nicht
    };
    

    Gibt es da eine Liste, was erlaubt ist ?
    Vielen Dank im Voraus (in meinen Büchern hab ich nichts gefunden und auf die Schnelle im Netz auch nichts).

    Gruss
    Shnugg


  • Mod

    Theoretisch der gesamte Zeichensatz des Zielsystems außer den Zeichen die eine besondere Bedeutung in der Sprache haben (/ und & zählen dazu). In der Praxis heißt das aber, dass du dich besser auf alphanumerische Zeichen und den Unterstrich _ einschränkst. Außerdem solltest du nichts mit _ anfangen lassen, die Namen sind reserviert (die exakten Regeln sind etwas komplizierter, aber mit dieser Vereinfachung liegst du nicht falsch).



  • Erlaubte Zeichen in Bezeichnern sind alle Buchstaben, Zahlen und der Underscore. Somit sind 4 und 5 ungültig.



  • Für die enums gelten die selben Namensregeln wie für alle anderen Bezeichner (Typen, Variablen, Funktionen etc):
    * beginnen mit Buchstaben oder Unterstrich
    * bestehen nur aus Buchstaben, Ziffern und Unterstrich
    * sind keine C++ Schlüsselwörter (z.B. for, register oder template)
    * einige Bezeichner (vorwiegend die mit Unterstrich am Anfang) dürfen vom Compiler für seine Zwecke reserviert werden



  • Hallo,

    sehr schnelle Hilfe. Ich beanke mich.

    Eine schöne Zeit wünscht
    Shnugg



  • @SeppJ:
    Wie kommst du jetzt auf die Idee 😕 Sprache verwechselt?

    In Kommentaren und String-Literals kann man (fast) alle Zeichen des Zeichensatzes verwenden, den die C++ Implementierung verwendet.

    In Bezeichnern ist es aber ganz klar eingeschränkt, die erlaubten Zeichen wurden ja bereits genannt ('A'-'Z', 'a'-'z', '0'-'9', '_').
    Und "enum Konstanten" sind nunmal auch Bezeichner.



  • CStoll schrieb:

    Für die enums gelten die selben Namensregeln wie für alle anderen Bezeichner (Typen, Variablen, Funktionen etc):
    * beginnen mit Buchstaben oder Unterstrich
    * bestehen nur aus Buchstaben, Ziffern und Unterstrich
    * sind keine C++ Schlüsselwörter (z.B. for, register oder template)
    * einige Bezeichner (vorwiegend die mit Unterstrich am Anfang) dürfen vom Compiler für seine Zwecke reserviert werden

    Man sollte vielleicht den ersten und letzten Punkt klarer voneinander trennen.

    Zu den vom System reservierten "_"-Variablennamen zählen Bezeichner:
    - die mit zwei Unterstrichen und einem kleinen Buchstaben anfangen (z.B. __count)
    - die mit einem Unterstreichen und einem großen Buchstaben anfangen (z.B. _Tierart)

    Diese werden keine Compiler-Fehler, jedoch ein undefiniertes Verhalten zur Laufzeit hervorrufen! Variablen, die mit einer Zahl anfangen, sind ebenfalls ungültig.



  • [Rewind] schrieb:

    - die mit zwei Unterstrichen und einem kleinen Buchstaben anfangen (z.B. __count)

    Es geht nicht nur ums Anfangen, sondern grundsätzlich um alle Bezeichner, die doppelte Unterstriche enthalten.

    Nicht aufgezählt hast du Bezeichner, die mit einem Unterstrich beginnen, gefolgt von einem Kleinbuchstaben. Die sind im globalen Namensraum reserviert.

    Als Faustregel sollte man sich einfach merken:
    Keine doppelten und führenden Unterstriche. Damit ist man auf der sicheren Seite.


Anmelden zum Antworten