Codeorganisation (c/c++)



  • Hallo Leute,

    meine Frage vielleicht nicht die erste aber ich muss die stellen. 😉

    Wie ist es am besten den Code (Klammer sind gemeint) zu schreiben so:

    if (a < b) {
    
      ...
    
    }
    

    oder so:

    if (a < b) 
    {
    
      ...
    
    }
    

    Oder was wird häufiger benutzt?

    Danke



  • Ich bevorzuge definitiv Variante 1, da ich so nicht unnötig Platz verschwende, mehr Zeilen auf den Bildschirm kriege und mir entsprechend mehr Übersicht verschaffe. Aber das sieht jeder anders, und du solltest es so machen, wie es dir am besten gefällt.



  • Mach es wie es dir am besten gefällt. Solltest du jemals in die Situation kommen, dass die Formatierung geändert werden muss (z.B. durch Konventionen in einem Projekt mit mehreren Leuten), dann such dir ein Tool (google: indent, astyle, ...) raus, welches den Code automatisch so umformatiert wie es gewünscht ist. Dann kannst du weiterhin bei deinem Stil bleiben.

    Wenn du allerdings den richtigen Weg zur Formatierung suchst, nimm die erste Variante. Die zweite ist für Bettnässer und Syntaxnazis.

    PS: Der letzte Absatz ist natürlich total ernst gemeint.



  • Ich favorisiere auch die 1. Version. Aber die andere Kollegen bestehen hartnäckig auf der 2. Variante. Sie meinen, dass es überichtlicher ist... 🙄



  • Tim schrieb:

    Die zweite ist für Bettnässer

    Verdammt, woher weißt du das?! Das sollte doch keiner wissen! Hätte ich geahnt, dass ich mich durch meine Code-Formatierung verrate... 😃 😃



  • shuriko schrieb:

    Ich favorisiere auch die 1. Version. Aber die andere Kollegen bestehen hartnäckig auf der 2. Variante. Sie meinen, dass es überichtlicher ist... 🙄

    Genau! Lass dir nix einreden. Variante 1 rules!



  • So macht man das:

    #define begin {
    #define end }
    
    if (a < b)
    begin
    //...
    end
    

    🤡



  • _matze schrieb:

    shuriko schrieb:

    Ich favorisiere auch die 1. Version. Aber die andere Kollegen bestehen hartnäckig auf der 2. Variante. Sie meinen, dass es überichtlicher ist... 🙄

    Genau! Lass dir nix einreden. Variante 1 rules!

    Ich verwende seit Jahren schon den vim-Editor, nun kann man bei dem zwischen den Klammern springen:

    shift+%

    und da habe ich meine Übersichtlichkeit immer! 🕶 Mich stören aber diese Krücken mit:

    {
    
     ...
    
    }
    

    Ich bin leider allein (1 gegen 20) in diesem Bereich. Kann ich unter unix im vim die ganze "übersichtliche" Formatierung in eine normale umwandeln?

    Danke.



  • Tachyon schrieb:

    So macht man das:

    #define begin {
    #define end }
    
    if (a < b)
    begin
    //...
    end
    

    🤡

    👎



  • shuriko schrieb:

    if (a < b) {
      
      ...
    
    }
    

    die einsame klammer am ende sieht doch völlig hirnamputiert aus. warum nicht gleich so:

    if (a < b) { ... }
    

    ?
    🙂



  • if(){
     blubb
    }
    


  • PRIEST schrieb:

    if(){
     blubb
    }
    

    na, geht doch 👍
    🙂



  • ~fricky schrieb:

    na, geht doch

    ^^ quatsch. die letzte klammer steht immer noch ganz allein da.
    🙂



  • ^^?

    if(){
     blubb
    }else{}
    

    xD jetzt hast was dran kleben 😃



  • Variant 2! Weil Variante 1 ist so ne Java-Erfindung. 😃



  • TSO schrieb:

    Weil Variante 1 ist so ne Java-Erfindung.

    nein, das haben die urväter von C verbrochen. dafür sollte man sie heute noch ohrfeigen.
    🙂



  • ~fricky schrieb:

    TSO schrieb:

    Weil Variante 1 ist so ne Java-Erfindung.

    nein, das haben die urväter von C verbrochen. dafür sollte man sie heute noch ohrfeigen.
    🙂

    Naja, ich bleibe Persönlich (trotz des drößeren Platzbedarfes bei Variante 2. Der Grund dafür ist folgender:

    // Bei mehreren Anweisung finde ich es fast egal,...
      if(a<b) {
        blubb();
        blubb();
        blubb();
      }
    
      // ...wenn man die Klammern aber bei Einzelanweisungen weglässt,...
      if(a<b)
        blubb();
    
      // ...übersieht man leichter eine Klammer die Ausversehen "rumsteht".
      if(a<b)
        blubb();
      }
    

    Ich habe es lieber auf einer Ebene da auch das Auge beim Lesen weniger springen muss.

    Aber wie gesagt alles Geschmackssache, und für meinen Fall passe ich mich den Projektgegebenheiten an. Hauptsache man rückt ein. Selbst die Varianten mit eigeschobenen Klammern auf Höhe des untergeordneten Codes akzeptiere ich, sofern man sich daran konsequent hält.

    Davon abgesehen Programmiert nicht jeder auf einen 1-Zeilen Monitor 😉 Was interessiert mich die eine Zeile mehr oder weniger?



  • asc schrieb:

    Ich habe es lieber auf einer Ebene da auch das Auge beim Lesen weniger springen muss.

    Das Auge springt aber bei Variante 1 weniger. Da es weniger Zeichen scannen muss. Bei Variante 2 muss es die beiden Klammern matchen (müssen nicht, aber da die Klammern so dominant sind, realisiert das Auge sie auch - obwohl eigentlich unnötig), bei Variante 1 lebt es nur vom Einzug (da es die öffnende Klammer garnicht wahrnimmt).



  • Shade Of Mine schrieb:

    ...bei Variante 1 lebt es nur vom Einzug (da es die öffnende Klammer garnicht wahrnimmt).

    das ist ja das blöde daran. man sieht kaum falsch gesetzten klammern

    if (a < b)
       mach_was(); {
       mach_anderes();
       und_das();
    }
    

    ^^ sieht schön eingerückt aus, aber ob's so sein soll?

    btw, mich wundert's nur, warum die k&r-freaks funktionsaufrufe nicht auch so schreiben:

    k_and_r_sucks (
       123,
       "hello"
    );
    

    das wäre doch wenigstens konsequent.
    🙂



  • ~fricky schrieb:

    das wäre doch wenigstens konsequent.
    🙂

    wer_das_liest_ist_doof
    (
       123,
       "hello"
    );
    

    🙂


Anmelden zum Antworten