Sauberes Programmieren // Varibeln mit Prefix



  • Moin,
    hab irgenwann mal gelernt, das man bei der Deklaration von Varibeln, immer ein Prefix davorschreibt wie für:

    char cVarible;
    int nVarible;
    usw.

    wie nennt man das? Und wo finde ich eine Erklärung wie und wann ich was benutze?
    *will sauberer Programmieren*

    THX. Vielen Dank!!!



  • Hi,

    nennt sich glaub ich "polnische Notation" ...
    der Rest macht Google ... vielleicht 🙂

    Legolas



  • ich glaub das heißt ungarische notation
    polnische notation war doch die beim taschenrechner, oder?



  • Schande über mein Haupt ... hab wohl in letzter Zeit etwas
    zuviel mit meinem HP Taschenrechner gemacht 🙂

    Ja klar, es ist die ungarische Notation !!!

    *schäm* ...



  • "polnische Notation" sagt google mir nur komische Sachen, ich glaub da haste recht das ist eher für n Taschenrechner.

    Aber "ungarische notation" is besser,
    da hab ich was gutes gefunden:
    [url] www.bytelords.de/cowiki/251.html [/url]
    Da stehts so wie ich haben wollte.

    Vielen Dank!!!



  • ich find den code der bei ungarischer notation rauskommt optisch zum kotzen..ob es sinnvoll ist oder nicht, sauber oder nicht, mich würd keiner dazu bringen so zu coden 😃
    Durch sinnvole Variablennamen kommt man meiner Meinung nach auch ohne klar 🙂



  • Hallo,
    ungarische Notation und C++ ist eine äußerst tote Kombination. Kein Mensch verwendet heutzutage noch ungarische Notation zusammen mit C++ Code.

    Nur mal so als winzig kleine Anregung:
    http://www.objectmentor.com/resources/articles/naming.htm





  • Das mit den Prefixen ist in einer OO sprache wohl auch eher schwer, oder? Man müsste sich ja millionen von eigenen Prefixen ausdenken.



  • Die ungarische Notation ist eine Erfindung einers Microsoft Programmierers. Ob es Sinn macht oder nicht ist eine andere Sache. Ich finde es manchmal schon gut wenn ich Code lese und bei iLaenge_And erkenne das es ein integer ist.



  • unter c braucht man das weil man ständig selber wissen muss was das für ein typ ist
    z.b. bei printf
    aber unter c++ gibts templates die machen das automatisch und besser
    und bei andern typen unstimigkeiten meldet sich der compilier sowieso



  • das hat jetzt aber nichts mit Templates zu tun ...



  • Original erstellt von Bashar:
    das hat jetzt aber nichts mit Templates zu tun ...

    das ich nicht bei cout den typen angeben muss ja, aber das ich duch templates nicht mit void * arbeiten muss nein



  • Original erstellt von Helium:
    Das mit den Prefixen ist in einer OO sprache wohl auch eher schwer, oder? Man müsste sich ja millionen von eigenen Prefixen ausdenken.

    was zur Hölle programmierst du ?



  • Original erstellt von 1ntrud0r:
    was zur Hölle programmierst du ?

    Objekt Orientiert.

    Wiviel Klassen hat man? 20? 30? naja, das variiert. aber du kannst nicht für jede Klasse n prefix erfinden... da wird man ja bekloppt.



  • was zur Hölle programmierst du ?

    Also unser Projekt (ein Warenwirtschaftssystem) hat ueber 150 Klassen.

    mfg
    v R



  • Hi,

    also bei uns in der Firma wird für die eingebauten Typen (int, float, ...) ein Präfix verwendet. Ebenso für die Windows Controls (z.B. edt für Editbox). Bei den Selbstgeschriebenen Klassen gibt es keine eindeutige Vorschrift, aber Pflicht ist mindestens ein sinnvoller Name.

    MFG
    Kai



  • Kein Mensch verwendet heutzutage noch ungarische Notation zusammen mit C++ Code.

    Woher hastn das? Nur weil viele sagen, dass es nicht sinnvoll ist, heißt das noch lang nicht, dass es keiner verwendet. Auch wenn ich oo programmiere ist in c++ noch lange nicht alles ein Objekt. Und bei eingebauten Typen isses in c++ genauso sinnvoll respektive sinnlos wie in C. Und auf das p vor Zeigern seh ich auch nur Leute verzichten, die sich immer voll auf Ihre Codevervollständigung verlassen. Dann geht man stillschweigen davon aus, dass jeder, der Editor mal lesen will auch ne gute Codevervollständigung hat.

    Die Präfixe machen den Code zwar optisch vielleicht nicht schön (aber 'std::' tut das auch nicht) , aber beim Lesen hindern tun sie wohl kaum und wer es gewohnt ist, schätzt es.

    Natürlich kann man die Notation bei Objekten nicht durchziehen, aber man kann ja ein bisschen improvisieren, wo's sinnvoll erscheint:
    z.B. ap für auto_ptr, itr für Iterator und itrp für einen Iterator, der selber wieder auf einen Zeiger zeigt.



  • Original erstellt von kartoffelsack:
    Woher hastn das? Nur weil viele sagen, dass es nicht sinnvoll ist, heißt das noch lang nicht, dass es keiner verwendet.

    im allgemeinen hält man sich daran was die Gurus sagen...

    Die Präfixe machen den Code zwar optisch vielleicht nicht schön (aber 'std::' tut das auch nicht) , aber beim Lesen hindern tun sie wohl kaum und wer es gewohnt ist, schätzt es.

    wir haben letztens eine Beisprechung bezüglich Code Design gehabt.
    das Resultat war, dass sich alle Programmierer einstimmig gegen ungarische Notation ausgesprochen haben.

    Natürlich kann man die Notation bei Objekten nicht durchziehen, aber man kann ja ein bisschen improvisieren, wo's sinnvoll erscheint:
    z.B. ap für auto_ptr, itr für Iterator und itrp für einen Iterator, der selber wieder auf einen Zeiger zeigt.

    lpfnWndProc ist das beste Beispiel für den unsinn von ungarischer Notation.
    ap? auto_pointer oder array of pointers?
    itrp? Zeiger auf iterator oder iterator auf zeiger?

    soviele Fragen... da ist es noch lange nicht klar.
    Wenn man funktionen kurz hält braucht man das alles sowieso nicht, da man dann die deklaration der variable dann ja eh sieht.
    und klassenmembervariablen gibts nur so wenige, dass man den überblick leicht behalten kann.

    bzw. hat die ungarische Notation eine schwachstelle: funktionen. was geben die zurück? da muss man immer nachsehen.

    aber wenn jemand ungarische Notation verwenden will, bitte, ich hindere niemanden daran - ich kann nur Gründe dagegen nennen.



  • Original erstellt von Dimah:
    unter c braucht man das weil man ständig selber wissen muss was das für ein typ ist
    z.b. bei printf

    Du musst auch in C++ wissen, was für ein Typ das ist. Du musst immer wissen, was für ein Typ 'das' ist. Man kann mit einem int nunmal nicht so umgehen, wie mit einem Datenbankinterface.

    [Ich programmiere zB mit einem Compiler. Der sagt mir, wenn ich den falschen Typen mit dem Namen erwische. Auch bei printf.]

    Die UN ergibt genau dann Sinn, wenn man die Typen _ignoriert_, beispielsweise bei einer string2int-Funktion wo man gerne zwei Variablen 'num' nennen will.

    [ Dieser Beitrag wurde am 04.03.2003 um 17:40 Uhr von Daniel E. editiert. ]


Log in to reply