_t und m_ und so...



  • Ja, '_t' steht wirklich für 'type' und wurde bei den Standard-C-Libraries eingeführt und dann auch teilweise von C++ übernommen, z.B. size_t, wchar_t etc.
    Einfach, um Variablennamen von Typnamen zu unterscheiden...



  • Th schrieb:

    Ja, '_t' steht wirklich für 'type' und wurde bei den Standard-C-Libraries eingeführt und dann auch teilweise von C++ übernommen, z.B. size_t, wchar_t etc.
    Einfach, um Variablennamen von Typnamen zu unterscheiden...

    ... was aber noch nicht automatisch bedeutet, dass es gut ist. 😃

    Gruß,

    Simon2.



  • Artchi schrieb:

    Soweit ich weiß, wurde die ungarische Notation von einem ungarischen MS-Mitarbeiter eingeführt, weil er damals kein englisch konnte und so die Kollegen ihn "verstehen" konnten.

    Bullshit! Auf was für Ideen die Leute kommen nur um Microsoft in die Pfanne zu hauen - herrlich.

    Nieder mit der ungarischen Notation!!!!!! Brennt sie nieder 😃



  • die ungarische notation wurde von einem microsoft mitarbeitet erfunden 😉 dass er kein englisch konnte, stell ich allerdings mal in den bereich der gerüchte.



  • Man darf nciht vergessen wann und warum ungarische Notation benutzt wurde (Hinweis: Vergangenheitsform)

    Damals hatte man bestenfalls einen simplen Texteditor mit 80x40 Zeichen Darstellungsbereich zur Verfügung stehen. Kein INtellisense, keine IDEs, gar nix in der Art.

    Hinzu kommt das im alten C alle Variablen immer am Anfang des Blocks definiert werden mußten. Traf man also irgendwo weiter unten auf eine variable X und wolle wissen was es war, dann mußte man sich mühselig auf die Suche begeben.

    Heute ist das einfacher... Man hovered mit der Maus drüber und das wars 😉 (Ich gebs zu, bin ein Intelliisense junkie)

    Wobei... Ich hab schon damals diese Notation für viel zu umständlich empfunden... Weil eine Änderung des Typs immer eine Umbenennen der Variablen nach sich gezogen hätte... Dummfug halt.

    Was ich wohl bis heute benutze ist das (m) vor Membervariablen einer Klasse und (s) für statics... Überflüssig oder nicht, who cares. Macht es aber im Code leichter lokale Variablen von Members zu unterscheiden... Jedem das Seine...



  • thordk schrieb:

    die ungarische notation wurde von einem microsoft mitarbeitet erfunden 😉

    Das stimmt, aber Charles Simonyi hat Jahre zuvor (beovr er zu Microsoft ging) die Ungarische Notation entwickelt.

    Aber ich sag ja: Nieder mit diesem Müll, hat in C++ nichts zu suchen!



  • loks schrieb:

    Hinzu kommt das im alten C alle Variablen immer am Anfang des Blocks definiert werden mußten.

    und ich hatte es mittlerweile FAST vergessen... du böser mensch!



  • thordk schrieb:

    loks schrieb:

    Hinzu kommt das im alten C alle Variablen immer am Anfang des Blocks definiert werden mußten.

    und ich hatte es mittlerweile FAST vergessen... du böser mensch!

    Das empfand ich aber als schlimmer:

    int test_funktion (parameter1, parameter2)
    int parameter1,
    int parameter2
    {
        int result;
    
        result = parameter1 + parameter2;
    
        return (result);
    }
    


  • Das ist dann gar nicht mehr so weit von Assembler entfernt 😉



  • Ungarische Notation kann man in C++ zu nichts gebrauchen, also finger weg. Ist wie sprintf in C++.



  • Artchi schrieb:

    Soweit ich weiß, wurde die ungarische Notation von einem ungarischen MS-Mitarbeiter eingeführt, weil er damals kein englisch konnte und so die Kollegen ihn "verstehen" konnten.

    Geiles Gerücht. 🙂

    Mal ein bissl Klarheit. Die ungarische Notation wurde für das Microsoft-Office-Projekt eingeführt, zumindest ist das Joel Spolskys Theorie und er als Insider hat da sicher etwas Ahnung. Ich empfehle seinen Artikel. Gerade denen, die so vehement gegen UN wettern. Ich bin zwar nach wie vor ein Feind der UN in Sprachen, deren Semantik eine strikte Typentrennung zulassen. Trotzdem sind einige Notationen durchaus sinnvoll (man schaue sich z.B. mal den Gebrauch von '_t' in Bibliotheken wie Boost::Spirit an; ohne solch eine Notation wär's da echt chaotisch). Genrell ist mein Gedanke dazu: UN ist -- für Typenkennzeichnungen -- in einer streng typisierten Sprache absolut sinnlos. Sie *ist* aber sinnvoll, um andere semantische Kennzeichnungen vorzunehmen, die nicht durch den Compiler überprüft werden. Allerdings sind das fast immer temporäre Lösungen. Die Beispiele in Joels Artikel finde ich da nicht sehr gut. Hier gäbe es bessere Lösungen.

    Na ja, hier der Artikel: http://www.joelonsoftware.com/articles/Wrong.html



  • Nachtrag:

    Das Präfix 'm_' (oder eine andere beliebige Notation) ist wirklich ein sinnvoller Einsatz der Ungarischen Notation. Hier wird nämlich eine Semantik deutlich gemacht, die sonst verloren ginge. In VB könnte man hier zwar auch getrost 'Me.' nehmen aber 'this->' unter C++ finde ich vergleichsweise zu klobig (außerdem bedeutet 'Me.' bzw. 'this->' nicht immer dasselbe wie 'm_').



  • Mestro schrieb:

    Ungarische Notation ... Ist wie sprintf in C++.

    schreib' doch **std::**sprintf. vielleicht findest du das besser 😃



  • loks schrieb:

    Wobei... Ich hab schon damals diese Notation für viel zu umständlich empfunden... Weil eine Änderung des Typs immer eine Umbenennen der Variablen nach sich gezogen hätte... Dummfug halt.

    Wo du schon von modernen IDEs sprichst: Rechtsklick -> Refactor -> Rename 😃



  • naja ist ab un zu schon vorteilhaft...



  • Fu UN!


Anmelden zum Antworten