mikrocontroller.net

Forum: Compiler & IDEs Schöner Quelltext (aber wie?)


Autor: StarkStrom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bastle gerade an einem immer größer werdenden Projekt und langsam 
wird der Code unübersichtlich.
Leider bin ich nur ein "Hobby"-C Programmierer, und nun hab ich (nicht 
erfolgreich) nach einer Seite gesucht, auf der so die Basics eines 
schönen Quelltexts erklärt sind. Also kein Tutorial "wie lerne ich 
programmieren", das kann ich schon. Mir fehlt bloß der optische 
Feinschliff, der ggf auch noch ein Performance verbessert.
So was wie: "Was gehört in eine *.h, was in eine *.c" etc...

Kennt da wer was oder hat da wer Tipps?

MfG

Autor: Sonntag (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://tinyurl.com/2d8obq2

schönen Sonntag

Autor: StarkStrom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Style Guide", danke, darauf bin ich nicht gekommen.
Hab immer nur "schöner Quelltext" etc versucht :-D

Ebenfalls ein schönen Sonntag.

Autor: Jens Wirth (jewirth) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
StarkStrom schrieb:
> Hallo,
> ich bastle gerade an einem immer größer werdenden Projekt und langsam
> wird der Code unübersichtlich.
> Leider bin ich nur ein "Hobby"-C Programmierer, und nun hab ich (nicht
> erfolgreich) nach einer Seite gesucht, auf der so die Basics eines
> schönen Quelltexts erklärt sind. Also kein Tutorial "wie lerne ich
> programmieren", das kann ich schon. Mir fehlt bloß der _optische_
> Feinschliff

Wenn ich fremden, 'unattraktiven' Code übernehme, dann lasse ich die 
auto format - Funktion von Eclipse darauf los. Vielleicht hilft es dir 
ja zu schauen, was Eclipse per default aus deinem Code macht? Du kannst 
dort auch zwischen verschiedenen Coding Styles umschalten.


> , der ggf auch noch ein Performance verbessert.

Ein guter Coding Style erhöht die Performance des Programmiers :-)


> So was wie: "Was gehört in eine *.h, was in eine *.c" etc...

Hmmm, vielleicht solltest du doch lieber ein C-Tutorial lesen? :-)


Schöne Grüße
Jens

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens Wirth schrieb:
>> , der ggf auch noch ein Performance verbessert.
>
> Ein guter Coding Style erhöht die Performance des Programmiers :-)

Dazugehört aber nicht das schön Formatieren, das bewirkt genau 0,nix.
Sondern das Durchdenken des Projekts und das Aufteilen in möglichst 
kleine mehrfach verwendbare Module.
Von der CPU-Performance gesehen ist das ein kleiner Rückschritt, die 
dann nötigen Calls machen das Programm ein bischen langsamer gegenüber 
Spaghetticode.
Aber von der Verstehbarkeit, Wartbarkeit, Erweiterbarkeit und 
Fehlersicherheit ist es dafür ein gewaltiger Fortschritt.

Z.B. sieht man fast immer LDC-Libs, wo die Nibble-Funktion an mindestens 
6 Stellen hart reincodiert ist. Will nun ein Anfänger die Pinbelegung 
ändern, kriegt er graue Haare darüber oder schmeißt den ganzen Krempel 
in die Ecke.
Hätte man aber nur eine Nibble-Funktion, die 6-mal aufgerufen wird, wäre 
das Pinändern ein Klacks.


Peter

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Jens Wirth schrieb:
>>> , der ggf auch noch ein Performance verbessert.
>>
>> Ein guter Coding Style erhöht die Performance des Programmiers :-)
>
> Dazugehört aber nicht das schön Formatieren, das bewirkt genau 0,nix.

0,nix würde ich nicht sagen.
Das was du (und ich) bei unseren eigenen Programmen als hingeschludert 
bezeichnen würdest ist immer noch meilenweit davon entfernt, was man 
hier im Forum so manches mal zu Gesicht bekommt.

Wir sind zb daran gewöhnt, automatisch einzurücken. Da denkt keiner mehr 
darüber nach. Einem Neuling musst du erst aber mal beibringen, dass 
solche Kleinigkeiten wichtig sind. Und zwar nicht im Nachhinein sondern 
sofort.
Keine Buchstabenwürste vom linken bis zum rechten Rand nur weil das in C 
prinzipiell möglich ist, sondern den Code auch optisch in Einzelteile 
aufteilen.
Keine Unmengen von Leerzeilen zwischen den Anweisungen, die den Code nur 
unnötig in die Länge ziehen.

Du machst das nicht und ich mach das nicht.
Aber Neulinge tun das.

> Sondern das Durchdenken des Projekts und das Aufteilen in möglichst
> kleine mehrfach verwendbare Module.

Das sowieso.

Autor: StinkyWinky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig ist, seinen Stil konsequent durch zu ziehen. Dann fällt es 
einem leichter, den Code zu erfassen.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
StinkyWinky schrieb:
> Wichtig ist, seinen Stil konsequent durch zu ziehen. Dann fällt es
> einem leichter, den Code zu erfassen.

Das ist korrekt. Wenn man einen Fremden Code liest und sich kurz an 
dessen Notation gewöhnt hat, ist es einfacher den Rest zu lesen.

Beim Code nachvollziehen (sei es fremder, oder alter Code) geht es nicht 
darum, den Code bloß zu lesen, sondern auch zu interpretieren.
Sprich: Zeilen wie
for (i=0; i<ARRAY_MAX; i++)
{
...
}
kann man sofort interpretieren als "Ah, er iteriert über das Array" ohne 
großartig viel lesen zu müssen.

Autor: Bernhard R. (barnyhh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Basics eines "schönen Quelltextes" findest Du im Duden. Insbesondere 
die Hinweise zum Maschine-Schreiben liefern viele Regeln, die die 
Lesbarkeit von Texten erheblich erhöhen.

Mein Vorredner hat praktischerweise ein Beispiel eingebracht, wie man es 
nicht tun sollte (die mathematischen Zeichen werden "unsichtbar"):

Simon K. schrieb:
> for (i=0; i<ARRAY_MAX; i++)
> {
> ...
> }

Lesbarer sieht das Ganze folgendermaßen aus:

for (i = 0; i < ARRAY_MAX; i++)
{
...
}

Ansonsten:
Lies fremden Code und achte auf Lesbarkeit und Verständlichkeit.
Üernimm, was Du für verständlichkeits-fördernd hältst.

Bernhard

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard R. schrieb:
> Mein Vorredner hat praktischerweise ein Beispiel eingebracht, wie man es
> nicht tun sollte (die mathematischen Zeichen werden "unsichtbar"):
Tja, so unterscheiden sich die Geschmäcker ;-)

> Simon K. schrieb:
>> for (i=0; i<ARRAY_MAX; i++)
>> {
>> ...
>> }
>
> Lesbarer sieht das Ganze folgendermaßen aus:
>
> for (i = 0; i < ARRAY_MAX; i++)
> {
> ...
> }

Finde ich nicht, man sieht die Gliederung der einzelnen for-Bestandteile 
nicht mehr so gut. Kann mich aber auf beide Möglichkeiten ohne 
Gewissensbisse einlassen.
Gibt ja noch viel schlimmere Beispiele. Zum Beispiel fette IF-Abfragen, 
wo kein einziges Leerzeichen drin ist, da hast du natürlich schon Recht 
dann.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonntag schrieb:
> http://tinyurl.com/2d8obq2
>
> schönen Sonntag

Ah, lass mich raten: Du hast selbst keine Ahnung, aber denkst Dir, so 
könnte man wohl an was kommen. Wow. Intelligent! Google. Wer hätte das 
gedacht. Welchen der Style-Guides würdest Du denn so empfehlen und 
warum?

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.