Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
30.03.2002, 21:20
Retro



Hier mal ne kleine Frage zur ungarischen Notation!
Was ist richtig/besser?

Bsp1.:Quellcode:[b]var[/b]
  Test1:      Integer;
  Test2:      Word;
  Blablabla:  String;
  Lala:       Char;
  Blubb:      Byte;

Bsp2.:Quellcode:[b]var[/b]
  Test1      : Integer;
  Test2      : Word;
  Blablabla  : String;
  Lala       : Char;
  Blubb      : Byte;

Bsp3.:Quellcode:[b]var[/b]
  Test1: Integer;
  Test2: Word;
  Blablabla: String;
  Lala: Char;
  Blubb: Byte;

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 30.03.2002 um 21:20 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
30.03.2002, 21:46
mani



und was hat das ganze mit ungarischer notation zu tun ?

2. gefällt mir am besten :)

--

zum Seitenanfang zum Seitenende Profil || Suche
002
30.03.2002, 22:14
feigling



Das Zweite ist am Besten.
Bei mir sieht es aber immer wie in 3 aus.
Aber was hat das denn mit ungarischen Notation zu tun ?
Ungarischen Notation ist doch sowas
pf_variable <= pointer float
m_membervariable
ia_variable <= integer array

Sowas ist doch, glaube ich ungarischen Notation, oder ?

--

zum Seitenanfang zum Seitenende Profil || Suche
003
30.03.2002, 22:21
mani



feigling, wieso sagst du genau DAS was ICH schon vorher gesagt hab ?

--

zum Seitenanfang zum Seitenende Profil || Suche
004
30.03.2002, 22:37
Retro



Die ungarische Natation beschreibt allgemeine Regeln um den Code übersichtlich zu halten... dazu zählen Solche schreibwesen ebenso wie Prefixes für Variablen.

Ich nehme auch immer Variante Nr.2, aber ich frage mich halt wie es "richtig" ist... Für solche Seriendeklarationen hab ich noch nirgends ne Regel gesehen - aber trotzdem reizt es mich, es genau richtig zu machen :)

Der rest der ungarischen Notation wende ich auch immer an, der Code bleibt auch über nen paar Seiten weg übersichtlich..

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
005
30.03.2002, 22:44
mani



http://www.geocities.com/riccardo26de/content/work/view/simonyi.pdf

:)) wusst ichs doch; war nur der m$ variablen mensch

--

zum Seitenanfang zum Seitenende Profil || Suche
006
30.03.2002, 22:48
Retro



Fein, und was steht da großartiges über die Regeln drinne? Jeder "große" Programmierer hat sich bestimmt schon einmal gedanken über einen übersichtlichen Code gemacht.

Seine Gedanken wurden zu den offiziell inoffiziellen Regeln gemacht.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
007
30.03.2002, 23:31
Kriz



Die ungarische Notation ist das Produkt von Charles Simonyi, seines Zeichens legendärer Programmierer bei M$. Hier die Übersicht:
Quellcode:c = char
by = BYTE (unsigned char)
n = short
i = int
b = bool
f = flag
w = WORD (unsigned short)
l = LONG (long)
dw = DWORD (unsigned long)
fn = function
s = String
sz = String zero-terminated
h = Handle
p = Pointer

=)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
008
31.03.2002, 10:11
mani



naja, auf sowas wäre ich auch noch gekommen :P

--

zum Seitenanfang zum Seitenende Profil || Suche
009
31.03.2002, 13:09
TheTinySteini



Zitat:
Encoding the type of a function into the name (so-called Hungarian
notation) is brain damaged - the compiler knows the types anyway and can
check those, and it only confuses the programmer. No wonder MicroSoft
makes buggy programs.

Zitat aus der CodingStyle vom Linux Kernel. Aber mit dem bin ich nicht ganz einverstanden. Ich selber schwanke oft zwischen den Stilen. Bei globalen Variablen nehme ich normalerweise die HN, und bei Klassen normalerweise auch. Aber wenn ich eher low-level C-Programming mache, dann gehe ich dazu über, die Funktionsnamen alle klein zu schreiben, Variablen nicht mehr mit Prefixes zu kennzeichnen etc. Ich finde HN vernünftig, wenn sie gut angewand wird. Dann sieht man, wenn man fremden Code (oder eigenen Code nach mehreren Monaten =) übernimmt sofort was welche Variable macht, und muss nicht erst die Definition suchen, um zu gucken ob's ein float oder ein int ist. Macht ja durchaus Unterschied =)
Aber wenn's dann auf solche "MyCrosoft"-Bezeichnungen hinausläuft wie MyPrivateFunctionPointerThatPointsToSomethingThatIsNotReallyImportantButReturnsAnInteger, hört der Spaß auf. Arme Tastatur.

Aber Linus Torvalds fordert zum Beispiel fordert auch 8 Zeichen pro Tab. Ich finde 4 schwer in Ordnung. 8 is ja wohl für Blinde.
K&R-Stil find ich normalerweise auch angebracht, also so:
Quellcode:if ( this == that ) {
  do_something();
} else {
  do_something_different();
}
statt Quellcode:if ( this == that )
{
  do_something();
}
else
{
  do_something_different();
}

Aber dann kann man nicht mal schnell eben nur das if testweise auskommentieren (einfach ein // davor), sondern muss erst die Klammer auf die nächste Zeile bringen. Ansonsten find ich den Stil gut, macht die if-clauses sehr kompakt, sieht man gleich, was zusammengehört.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
010
31.03.2002, 13:24
xoix



Zitat:
Hungarian Notation
Charles Simonyi is credited with first discussing Hungarian Notation. It is a variable naming convention that includes C++ information about the variable in its name (such as data type, whether it is a reference variable or a constant variable, etc). Every company and programmer seems to have their own flavor of Hungarian Notation.

--

zum Seitenanfang zum Seitenende Profil || Suche
011
31.03.2002, 15:34
feigling



Zitat:
mani postete
feigling, wieso sagst du genau DAS was ICH schon vorher gesagt hab ?

Ganz einfach:
Weil ich noch ein paar Beispiele von ungarischer Notation drangehängt habe und ich wissen wollte, ob meine Beispiele wirklich ungarischer Notation sind oder ob ich mich da vertue und das mit dem pa <= Pointerarray was anderes ist.
Aber stimmt, die Fragestellung ist gleich, obwohl ich deinen Post nicht richtig gelesen habe =)

--

zum Seitenanfang zum Seitenende Profil || Suche
012
31.03.2002, 16:53
Prefect



Ich kann mich ttt größtenteils anschließen. Wobei ich die öffnende geschweifte Klammer zwar auch meist auf die gleiche Zeile schreibe, bei längeren Codeblöcken (besonders wenn im Codeblock neue lokale Variablen definiert werden) schreibe ich sie aber auf die nächste Zeile.

Ansonsten gibt's genügen Beispiele für hirnrissige Formatierungen, z.B.

Quellcode:
int
function(char *blah)
{
...
}

if (whatever)
  {
    ...
  }

Naja, wer's mag :P

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
013
31.03.2002, 20:09
dp
Administrator


ttt wieso 8 spaces pro tab? warum nicht gleich tab :confused:

ich persönlich _hasse_ einrückungen ohne tab. aber ich bevorzuge es auch geschweifte klammern in eine extra zeile zu schreiben.. ich würde trotzdem sagen da gibts kein wichtig und falsch, hauptsache der stil ändert sich nicht innerhalb eines sources.

--

zum Seitenanfang zum Seitenende Profil || Suche
014
01.04.2002, 00:29
Tron



Zitat:
Darth Paul postete
ich persönlich _hasse_ einrückungen ohne tab.

da bin ich nicht deiner meinung, es gibt einige editoren, bei denen man nicht einstellen kann wie breit ein tab ist, das ist extrem nervig, wenn der code dann ploetzlich 8 spaces eingerueckt ist, statt meiner gewohnten 2, was voellig ausreicht.
auch gibt es manchmal probleme bei druckern, die stur 8 spaces breite tabs drucken.

ich setzte { und } auch immer in eigene zeile, ausser bei einem leeren block (z.b. konstruktoren), da kommt direkt {} in eine zeile und falls nur ein befehl folgt kommen natuerlich keine { ... }

ich kann der ungarischen notation nichts abgewinnen, man muss durch den namen erkennen, was es fuer ein variablentyp ist, nicht durch tausend praefixe.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
015
01.04.2002, 01:40
Prefect



Die Vorteile von Tab gegenüber Spaces sind:
- man kann schneller navigieren (1 Tab ist eine Cursortaste, 4 Spaces sind 4 Cursortastendrücke)
- man hat nicht aus Versehen mal ein Space zu viel oder zu wenig

Und wie viel Spaces pro Tab spielt natürlich schon eine Rolle, auch wenn in der Textdatei selbst Tabs sind - schließlich zeigen manche Editoren Tabs breiter an als andere.

Mit 4 und 8 Spaces pro Tab kann ich mich anfreunden, mit 2 nicht - aber das ist natürlich Geschmackssache, und über Geschmack soll man nicht streiten.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
016
01.04.2002, 11:21
Kriz



Ich habe mich bei Tabs auf Schrittweite 4 geeinigt, da ich immer den Eindruck hatte, daß Schrittweite 8 irgendwie wie Platzverschwendung aussieht =)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
017
02.04.2002, 00:22
TheTinySteini



Hm, Delphi nimmt wohl 3, das kann ich net haben, gleich erstmal umgestellt. Und ich mag die Eigenschaft von Delphi nicht, dass man den Cursor überall platzieren kann, dann sieht man nicht mehr, wo noch unnötige Spaces dranhängen und wo nicht. Kann man aber glaub ich auch abschalten.

Bei PHP-Scripts bin ich dazu übergegangen, Tabs als Spaces zu setzen, weil ich einige Probleme hatte mit verschiedenen Editoren (u.a. mcedit, vi, HomeSite, UltraEdit, notpad etc), die alle anders interpretiert haben und dann teilweise ziemliches Chaos veranstaltet haben.

Aber C/OPascal/Basic/etc. hab ich lieber mit Tabs.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche