Klammersetzung Ansichtssache?



  • Und zwar habe ich nur eine Formfrage. Ich weiß nicht ob jeder Programmierer das anders macht, oder ob es ein richtig oder falsch gibt.

    int main() 
    {
    ... 
    }
    

    oder

    int main() {
    ... 
    }
    

    Ich habe beides schon gesehen. Beide Schreibweisen funktionieren natürlich auch. Aber ich will es mir nicht falsch angewöhnen. Wie macht ihr das? Bzw wie ist es richtig? Das ganze gilt natürlich auch für Kontrollstrukturen



  • Wo die geschweiften Klammern genau stehen ist egal. Da gibt es kein richtig oder falsch. Es ist nur nach Programmierstil unterschiedlich.



  • Das erstere ist falsch.



  • Das läuft unter dem Begriff Einrückungsstil (auch bei Wikipedia) und die Ansichten darüber gehen von "mir doch egal" bis zum "heiligen Glaubenskrieg".



  • Jetzt noch "C++ vs Java", "LaTeX vs MS Word" und "Emacs vs Vim" dann kann der Krieg beginnen. Ich versuche mich an 1TBS zu halten, da es ein gutes Mittelmaß ist. Wichtig ist, dass man im gesamten Projekt den gleichen Stil verwendet und konsistent bleibt.



  • Genau darum geht es mir SLx64. Ich möchte, dass auch andere mit meinem Code klar kommen und nicht jeder wettert, weil es für ihn schwierig ist, ihn zu lesen. Ich glaube auch ich werde künftig die zweite Variante wählen, da man sie deutlich öfter findet.



  • Tipp: nimm clang-format.

    Das löst zwar deine Frage nicht, weil du clang-format natürlich auf beide Arten konfigurieren kannst, aber immerhin ist dann alles konsistent. Lege dir clang-format sogar im Editor auf eine Tastenkombination. Ich nutze da z.B. Windows+f (f wir formatieren) für.

    Wenn ich clang-format nicht nutze, tendiere ich zu zu langen Zeilen. Wenn die dann komisch umgebrochen werden, ist es höchste Zeit, den Code zu vereinfachen bzw. irgendwas in eine Funktion auszulagern.

    Um den nächsten heiligen Krieg auszulösen: ich habe eine sehr starke Präferenz für 4 Spaces als Einrückungstiefe. Ich habe ein Projekt mit 2 Spaces gesehen (ist viel zu wenig) und arbeite öfter an einem mit 3 Spaces (3 ist einfach falsch!).



  • wob schrieb:

    Tipp: nimm clang-format.
    Das löst zwar deine Frage nicht, weil du clang-format natürlich auf beide Arten konfigurieren kannst, aber immerhin ist dann alles konsistent. Lege dir clang-format sogar im Editor auf eine Tastenkombination. Ich nutze da z.B. Windows+f (f wir formatieren) für.

    clang-format nutze ich auch, in Xcode einfach Rechtsklick und formatierene auswählen 😋
    Magst du deine clang-format Datei posten? Würd mich gerade interessieren. Und welchen Editor nutzt du?



  • Mit der ersten Variante verrätst du dein Überblicksvermögen.

    Auf anderer Weise betrachtet kannst du Code besser lesen wenn du Variante 2 verwendest und Variante 1 liest, aber nicht so sehr umgekehrt. Es sei denn du stehst wirklich drauf, aber naja.



  • Schön wie die Meinungen auseinander gehen 😃



  • Formatiere deinen ganz Code selbst, daran erhälst du Originalität und glaube dem, der anderer Meinungen in den Schatten stehen lässt.



  • Formatiere deinen Code ganz selbst.



  • Ich habe mich schon vor einiger Zeit von der ersten Form der Formatierung abgewandt und bevorzuge die zweite Form. Der Grund ist, das ich eine möglichst kompakte Darstellung möchte bei gleichzeitiger Übersichtlichkeit. Da sind (fast) leere Zeilen eher störend.

    Mein Problem ist, das Bildschirme immer zu klein sind, um einen ausreichenden Überblick zu haben. Die Auflösung zu erhöhen ist da ab einem gewissen Alter auch nicht die Lösung, außer man hat einen 64" Bildschirm in 60cm Entfernung vor sich. Daher vermeide ich lieber Zeilen ohne wirklichen Inhalt.

    Allerdings mache ich davon eine gravierende Ausnahme, indem ich den Rückgabetyp einer Funktion/Methode in eine eigene Zeile schreibe. Das hat den Vorteil, das die Funktionsnamen immer in der ersten Spalte beginnen.

    Ich stehe mit dieser Formatierung zwar ziemlich alleine da, aber ich muss mich als Hobby Programmierer ja auch nicht nach irgendwelchen Firmen Vorgaben richten.

    Oder anders gesagt, wenn Dir kein Vorgesetzter irgendwelche Vorgaben macht, wähle die Formatierung, die am besten zu deinem Arbeitsstiel passt.



  • Ich hab schon vor vielen Jahren ein Programm geschrieben, das Format 2 in Format 1 umwandelt. Wesentlich übersichtlicher.
    Es ist recht anstrengend den Programmfluss mit Format 2 zu überblicken. IMHO.



  • Die zweite Einrückung ist objektiv falsch. 🤡



  • Ja, es ist Ansichtssache, allerdings gibt es bezüglich Lesbarkeit für Variante 1 ziemlich gute Argumente:

    https://www.youtube.com/watch?v=ZsHMHukIlJY&t=21m50s

    ... abgesehen davon dass man bei der Augensuche nach der jeweiligen anderen zugehörigen Klammer
    immer auf die gegenüberliegende springen muss und sich die öffnende Klammer nicht immer an der selben
    Spaltenposition befindet.

    Ansonsten: Wie erwähnt, solche Diskussionen sind müßig, einfach clang-format nehmen. Jeder verwendet
    seinen eigenen Stil und konvertiert dann beim Commit in den "Projekt-Stil", und beim checkout wieder zurück.
    Am besten vollautomatisiert 😉



  • Soviele Pros und Kontras 🙂
    Ich werde mal versuchen den zweiten Stil zu schreiben und wenns mir auf Dauer zu unübersichtlich ist, dann werde ich zurück auf die erste wechseln. Mit dem clang muss ich mal gucken wie das funktioniert. Bekomme ich schon irgendwie hin 👍



  • Tu dir keinen Zwang an.



  • Zhavok schrieb:

    Soviele Pros und Kontras 🙂 :

    'Ich hoffe, du hast auch mal bei Wikipedia nachgelesen, denn mit der Klammerposition ist der "Glaubenskrieg" noch nicht vorbei.

    Aber egal welchen Stil du favorisierst, lesen musst du alle können.
    Und da siehst du dann erst, bei welchem du den Code besser verstehst.


Anmelden zum Antworten