mikrocontroller.net

Forum: Compiler & IDEs Notationen (Ungarische Notation)


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe mich in den letzten Wochen mit der C Programmierung
beschäftigt. Verwendet Ihr im Code Notaionen wie z.B die Ungarische
Notation? Die Anwendung von Notationen kenne ich von der
Softwareentwicklung mit Delphi, oder Visual Basic, wo ich sie sehr
hilfreich fand, den Code quasi besser "lesbar zu gestalten".

Gibt es hier auch einen Standard für C mit der aktuellen Lib des
WinAvr.

Beispiel:

viele deklarieren Variabeln z.B. so:

  unsigned char Counter;


mit Notation könnte das evtl. so aussehen:

  unsigned char ucCounter;    /* das "uc" steht für unsigned char */


ist die Variable global deklariert könnte man sie evtl. so nennen:

  unsigned char gucCounter;   /* das "g" steht für global */


bei WinAvr Lib:

  uint8_t Counter;

könnte das so aussehen:

  uint8_t uiCounter;

oder global:

  uint8_t guiCounter;


Was haltet davon, oder benutzt Ihr bereits einen Standard?

Gruß

Peter

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die ,,ungarische'' (eigentlich ja Microsoftsche) Notation ist unter
C-Programmierern außerhalb der Microsoft-Schmiede größtenteils
verrufen.  Argumentationen dafür findest Du sicher genügend im
Internet.

Eigentlich hast Du das beste Gegenbeispiel ja schon selbst gegeben:

uint8_t guiCounter;

...wäre für mich beim ersten Lesen ein Zähler, der irgendwas in einem
GUI zählen soll.

Die recht weit verbreitete Auffassung dagegen ist, daß es keinen Sinn
hat.  Wenn ein Programmierer sowas braucht, weil er sonst keinen
Überblick mehr über seinen Code besitzt, dann hat er beim Design was
vermasselt.  Kurze, beschreibende Namen sind allemal praktischer.

Aber bei MS's aufgeblasenen und oft völlig überladenen APIs ist das
kein Wunder, daß sie sowas zum Hausstandard erhoben haben. ;-)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Im Prinzip stimme ich dazu, aber man ist nicht immer in der glücklichen
Lage neuen Code zu entwickeln, sonder meistens muß man bestehende
Software umbauen, oder weiter entwickeln, und da hat man es mit Code
anderer Leute zu tun, und der eine mag lieber Vanille, und der andere
lieber Himbeer :-)

Notationen sind da manchmal schon recht hilfreich...

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hat das miteinander zu tun?

Nö, ich stimme dem einfach grundsätzlich nicht zu, daß eine solche
,,Notation'' dem Verständnis in irgendeiner Form zuträglich wäre.
Entweder ist der Code ordentlich geschrieben, dann braucht's den
Zirkus nicht, oder es ist schreckliches Kauderwelsch, dann hilft
auch das "lp" oder "gui" oder sowas vor den Bezeichnern nicht.
Ich habe schon gruseligsten ,,ungarischen'' Code gesehen, bei dem
ich am Ende aus lauter Freundlichkeit dem, der es mir gegeben hat,
den Code debuggen durfte (der andere hatte ihn aber nicht selbst
geschrieben, zu seiner Ehrenrettung -- aber ich hätte diesen Code
nichtmal benutzt).  Da half der ganze MS-Stil, Verzeihung ungarische
Notation, auch überhaupt nicht, daß Zeug war einfach nur grauenvolles
Chaos.

Zum anderen kannste mir glauben, daß ich bereits sehr viel C-Code
verschiedenster anderer Autoren in der Mache hatte, den man auch
ohne all sowas gut verstehen konnte, weil er sauber strukturiert
war, mehr oder weniger ordentlich kommentiert, davon zeugend, daß
der Autor auch sein Handwerkszeug verstanden hat.  Klar, eine
komplexe Aufgabe wie das Reinstricken der COFF-Debug-Erzeugung in die
GNU Binutils hat mich auch erstmal einiges an Recherche gekostet um
herauszufinden, welche Resourcen mir allesamt innerhalb der Binutils
zur Verfügung stehen, und danach zu planen, wie ich das Problem denn
angehen müßte.  Aber das ist bei einer komplexen Aufgabe normal.

Eine völlig andere Sache ist natürlich, daß ein Programm auch einen
einheitlichen Stil verfolgen sollte.  Es gibt nicht den richtigen
davon, aber solange sie in sich konsistent sind, kann man damit
leben.  Wenn man für ein bestimmtes Projekt dann Ergänzungen verfaßt,
hält man sich einfach mal an den Stil, in dem das schon verfaßt ist.
Ich habe viel mit FreeBSD zu tun, da gibt's ein allgemeines
Agreement,
der in einer manual page namens style(9) zusammengefaßt ist.  Nicht
alles finde ich darin sinnvoll (bspw. werden dort die Ausdrücke nach
einem »return« geklammert, also »return (0);« statt »return 0;«, hat
historische Gründe), aber man kann damit leben.  GNU sieht ein
bißchen anders aus, kann man auch damit leben.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.