• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Klammern setzen

mogbo

if (virus == true) {virus = false}
Themenstarter #1
Hallo,
ich hoffe das wird nicht zum Streitthema :)

Wie sollte man Klammern setzen:

1.
Code:
#include <stdio.h>

int main() {
    printf("Hello World\n");
    return 0;
}
2.
Code:
#include <stdio.h>

int main() 
{
    printf("Hello World\n");
    return 0;
}
Ist das reine Geschmackssache? Ich sehe in der Regel öfter "1.", habe aber auch schon von einem Kollegen damals zu meiner javascript Zeit (;'(), dass ich mir das gleich abgewöhnen soll und auf "2." wechseln solle.

Begründungen hierzu oder reine willkür?
 

zuglufttier

Well-Known Member
#2
Ich finde 2. hässlich und würde deswegen zu 1. greifen.

Das ist Philosphie und Geschmacksfrage zugleich, finde ich. Außerdem muss man sich nur mit den anderen Personen einigen, die das lesen sollen...
 
#4
Geschmacks- und Gewohnheitsfrage. Ich ziehe (1) vor, lasse dann aber eine Leerzeile.
Sollte nur konsequent sein. Lesen kann das jeder, so oder so.
 

Vril

Well-Known Member
#5
Ich habe es im tiefen letzten jahrhundert nach (2) gelernt - und bin dabei geblieben

Damals waren die Editoren noch sehr rudimentär - und da war es halt gut, wenn öffnende und schließende Klammer in der gleichen Spalte standen

Nachtrag: außerdem gab es früher wirklich Fälle, in denen ein Programmierer nach der Anzahl Zeilen Sourcecode bezahlt wurde ;-)
 
Zuletzt bearbeitet:
#8
Code:
int main()
{
    int a;
    scanf("%i", &a);

    switch(a) {
        case 1: {
        .....
       }
.
.
    }
}
Quasi beides gemischt

Hab mir den style-Guide auch schon versucht anzueignen, tue mir jedoch als C-Anfänger im Verständnis noch recht schwer
Im Prinzip ist der Style-Guide hinsichtlich der geschweiften Klammern ganz einfach:

Bei Funkionen (main gehoert auch zu den Funktionen) die oeffnende Klammer unter den Funktionsnamen und beim Rest neben den Namen. :-)
 

h^2

hat ne Keule +1
Mitarbeiter
#9
Immer 2. das ist für mich logischer und symmetrischer -> wenn ich das Ende eines Blocks sehe kann ich einfach zum Anfang springen, selbst mit line-wrap (den es natürlich auch eigentlich nicht geben sollte).
 

serie300

Well-Known Member
#10
Schönes Thema, immer wieder beliebt
1. Bei Projektprogrammierung mit mehreren Programmierern nimmst du am Besten den Styleguide des Projekts / Auftragsgebers (gilt auch für Linux, FreeBSD, etc)
2. Bei Eigenprogrammeriung sehe ich das eher nebensächlich. Mir persönlich gefällt das öffnende '{' drunter besser, weil man es dann weniger vergessen kann

Was auch immer zu Diskussionen führt: Einrücken mit 'TAB' oder Leerstellen ...

Serie300
 

Rakor

Administrator
Mitarbeiter
#13
Siehst du - und ich bin der Meinung, daß da keine Leerzeichen in den Code gehören sondern Steuerzeichen 'HT' (ASCII Code 9). Wo der TAB dann steht ist Sache vom Editor.

Serie300
Auch wenn das OT ist: mit Tabs kann dir das den Code in unterschiedlichen Editoren ganz böse zerreißen. Es gibt da genug die nen Tab 8 breit machen.... das sieht übel aus... und wenn dann noch zT Leerzeichen händisch irgendwo gesetzt wurden kannst das kaum noch lesen. Tabs sind TABU!

Achso und zum Thema: Wie gesagt wurde... Wenn es Guidlines gibt sind die anzuwenden. Im Team sollte man sich einigen (es geht aber auch ohne sich zu einigen :)). Für Eigenprojekte: wie es beliebt. Fast jeder Style hat seine Begründung.
Ich geb zu, dass ich meist einfach den Standard meiner IDE verwende :D
 
#14
Ich ziehe den Allman-Style (2) vor. Da sind öffnende und schließende Klammer auf derselben Einrückungstiefe.
Wichtig finde ich auch optionale Klammern konsequent zu setzen (z.B. nach einem if mit nur einer Anweisung).
 

Athaba

Libellenliebhaber
Mitarbeiter
#17
Ich nehme das Erste, wenn ich mich selbst entscheide, weil es vor allem in anderen Sprachen das Gängigere ist.

Aber meist richte mich nach dem Styleguide des jeweiligen Projekts, bzw. auch dem was in einem gewissen Bereich üblich ist (also durch Libs oder so vorgegeben). Kann mit beidem Leben. :)
 
#18
Ich benutze nur noch Tabs (4) und denke da nicht mehr drüber nach. Ich kenne das Argument für Leerzeichen, bin die aber einfach leid. Bei Bedarf kann man die dann mit den meisten Editoren einfach konvertieren. 8 Leerzeichen sind eh viel zu viel und nur nervig.
.