Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 26 von 26

Thema: Programmierstil

  1. #16
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von axeljaeger
    Nein, ich hab das gegenteilige Problem: Zu viele Ideen und zu wenig Manpower.
    Das ist nur eine gut getarnte besonders hinterhältige Variante des ursprünglichen Problems

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  2. #17
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von chrizel
    Steigert das die Lesbarkeit? In diesem Fall wuerde ich das Ergebnis schon mit 0 vergleichen.
    Ich mache auch immer konkrete boolsche Ausdrücke daraus, ist IMHO besser lesbar (Prüfung ob der Teilungsrest 0 ist, nicht ob der Teilungsrest "gültig" ist) und lässt sich zweitens leichter in andere Sprachen übertragen, die das vorraussetzen (zB Java)

    Zitat Zitat von peschmae
    Das ist nur eine gut getarnte besonders hinterhältige Variante des ursprünglichen Problems
    Ich glaube das ist die nächste Stufe

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #18
    Registrierter Benutzer
    Registriert seit
    09.07.2004
    Beiträge
    20
    Mastermind wäre ne gute idee...
    Ich versteh das net ganz, euren Schreibstil, ich schreib lieber gut lesbar ausserdem kann ich das mit den ganzen Abkürzungen und so net :-)

    Baumi

  4. #19
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Bei x == true kann man das nicht nur weglassen, man sollte sogar und zwar aus folgendem Grund: Der Vergleichsoperator (==) ist ja an sich auch nur eine Funktion. Der Rückgabewert dieser Funktion ist vom Typ bool. Man darf ja auch sowas schreiben
    Code:
    bool b = x == 5;
    Wenn man also ein bool nochmal durch eine Funktion jagt, die wo ein bool rauskommt, ist das doppelt gemoppelt.

  5. #20
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Da es hier um Stil geht würde ich doch Klammern setzen. Das macht das Dingens dann wohl ein bisschen lesbarer.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  6. #21
    Registrierter Benutzer Avatar von Trillian
    Registriert seit
    26.04.2001
    Beiträge
    180
    Im Linux-Kernel wird AFAIK auch mit Spaces anstelle von Tabs gearbeitet.

    Im CodingStyle Text steht drin:
    "Tabs are 8 spaces [...]."

    Diese Aussage macht keinen Sinn, wenn man \t statt ' ' nimmt :]

    => Tabs > Spaces

  7. #22
    Registrierter Benutzer
    Registriert seit
    27.04.2001
    Beiträge
    62
    Zitat Zitat von Trillian
    Im CodingStyle Text steht drin:
    "Tabs are 8 spaces [...]."
    Hat sich im laufe der Zeit wohl veraendert. Frueher waren es noch Tabs...

  8. #23
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650
    Für Tabs gibt's ja (unter Linux) die Funktionen exand u. unexpand um die Tabs zu eleminieren/einzusezten

    Und dem indent kann man dazu auch Optionen mitgeben.
    Problematisch ist der indent aber bei Assembler-Code in C-Dateien; da kommt häufig etwas nicht korrekt compilierares raus. Würde der Code in separate Assembler-Dateien gepackt, könnte man den indent auch über die Kernel-Sourcen gehen lassen, aber bei dem Chaos dort geht das nicht problemlos, selbst wenn man von dutzenden unvollständigen Treiber-Dateien absieht.

  9. #24
    Registrierter Benutzer
    Registriert seit
    17.04.2002
    Beiträge
    185
    Hallo,

    Zitat Zitat von axeljaeger
    Bei x == true kann man das nicht nur weglassen, man sollte sogar...
    richtig.
    Auf der anderen Seite sollte man aber auch bei Vergleichen die keine boolschen Ausdrücke sind es nicht weglassen. So wird es zumindest in vielen style-guides beschrieben und ich denke es ist auch wirklich sinnvoll.

    Wenn ich wissen will ob ein Wert > 0 ist, dann ist das eben ein Vergleich und kein boolscher Audruck auch wenn man es in C als sowas sehen kann.
    Da liegt es dann aber eben in der Verantwortung des Programmieres nicht alle "Tricks" die C einem bietet auch immer bis aufs letzte auszureizen, denn sonst könnte ein größeres Programm ziemlich schnell ziemlich unübersichtlich und schwer verständlich werden.

    Daher sagen wohl die meisten style-guides:

    Für
    if (x == true)
    ist ganz klar
    if (x)
    die bessere Wahl, da hier eine boolsche Variable ausgewertet wird.

    Geht es aber um Vergleiche, wie z.B. a%b > 0, dann ist
    if (a%b > 0)
    die bessere Wahl und nicht
    if ( !(a%b) )

    Die Frage war ja nach einem guten Programmierstiel und nicht danach, alles möglichst kurz zu schreiben.

    For a world where freedom and knowledge survives the compiler! (https://www.fsfe.org)

    If art interprets our dreams, the computer executes them in the guise of programs!

  10. #25
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650
    Zitat Zitat von BeS
    Geht es aber um Vergleiche, wie z.B. a%b > 0, dann ist
    if (a%b > 0)
    die bessere Wahl und nicht
    if ( !(a%b) )
    Das ist falsch;
    !(a%b)
    bedeutet
    (a%b) not_eq 0
    und nicht
    (a%b) > 0
    .

    Zur Sicherheit sollte man möglichst iso646.h nehmen, denn & und && können leicht verwechselt werden, aber bitand und and nicht; zudem ist es mit iso646 leichter lesbar.

  11. #26
    Registrierter Benutzer
    Registriert seit
    17.04.2002
    Beiträge
    185
    Zitat Zitat von nobody0
    Das ist falsch;
    !(a%b)
    bedeutet
    (a%b) not_eq 0
    und nicht
    (a%b) > 0
    .
    Ok, für ein negatives a könnte der Rest auch negativ werden, ich bin jetzt halt von natürlichen Zahlen ausgegangen.
    Das ändert aber nicht an der Grundaussage zum Thema Programmierstiel, dass man den Vergleichsoperator nur weglassen sollte wenn es sich wirklich um eine boolsche Variable handelt.

    For a world where freedom and knowledge survives the compiler! (https://www.fsfe.org)

    If art interprets our dreams, the computer executes them in the guise of programs!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •