_ marker für variablen?



  • hallo,

    letztens wurde hier gesagt dass "_" (underscore) bei den variablen namen nicht so gut wäre.
    wenn ich mir jetzt z.b. das Google Test framework anschaue sehe ich aber var_ bei lokalen variablen:

    https://github.com/google/googletest/blob/master/googletest/docs/primer.md

    wann macht es sinn mit "_" zu arbeiten?



  • Nur wenn sie am Anfang stehen.

    • _var
    • __var
      Da die "_" am Anfang des namens für compiler (und afaik auch standard library?) reserviert sind

    Alles andere ist egal



  • __var sowie _Var (also mit folgendem Großbuchstaben) sind für alle Bezeichner (Variablen, Namensbereiche, Strukturen, Klassen, Funktionsnamen, ...) reserviert,
    _var aber nur für globale Bezeichner (sie können also z.B. für lokale oder Membervariabeln benutzt werden), s. z.B. C++ keywords:

    Also, all identifiers that contain a double underscore __ in any position and each identifier that begins with an underscore followed by an uppercase letter is always reserved and all identifiers that begin with an underscore are reserved for use as names in the global namespace. See identifiers for more details.



  • Also ich mach auch oft solche Sachen:

    inline void setValue( unsigned value_ ) { MyValue = value_; }
    

    Die "guten" Namen reserviere ich mir immer für Member und die Funktionsparameter müssen daher dann ähnlich lautende aber eben andere Namen bekommen.

    Ist jedenfalls besser als sowas namenloses, was gar nichts aussagt:

    inline void setValue( unsigned a) { MyValue = a; }
    


  • Also ich habe mir zuletzt überlegt, wenn die Membervariable gleich heisst wie das Argument der Setter-Methode, anstatt m_variable für die Membervariable, aVariable oder a_variable für das Argument der Setter-Methode zu schreiben (das a steht dann für Argument, anstatt m für member).

    Das Argument der Setter-Methode kann sowieso nur in der Setter-Methode verwendet werden. Und der Name der Membervariable wird kürzer, wenn sie kein Präfix hat.



  • @titan99_ sagte in _ marker für variablen?:

    Also ich habe mir zuletzt überlegt, wenn die Membervariable gleich heisst wie das Argument der Setter-Methode, anstatt m_variable für die Membervariable, aVariable oder a_variable für das Argument der Setter-Methode zu schreiben (das a steht dann für Argument, anstatt m für member).

    Das Argument der Setter-Methode kann sowieso nur in der Setter-Methode verwendet werden. Und der Name der Membervariable wird kürzer, wenn sie kein Präfix hat.

    Member mit Präfixen zu versehen, habe ich mir von vornherein schon nicht angewöhnt. Das ist aus meiner Sicht unnötig. Das wäre ungefähr so als würden wir Menschen uns alle mit erstem Vornamen "Mensch" nennen, obwohl das ja offensichtlich ist was wir sind.


Log in to reply