- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Funktion lieferte falsches Ergebnis, Compiler-Bug?

  1. #11
    HaWe
    Gast
    Anzeige

    Praxistest und DIY Projekte
    Zitat Zitat von Ceos Beitrag anzeigen
    die reihenfolge beim ausführen ist dennoch nicht gewährleistet weil nicht definiert

    es ist nur vorgeschrieben in welcher reihenfolge ausgewertet werden muss

    bei einem aufruf in einem statement muss der compiler jedoch erst das ergebnis des aufrufs ermitteln und die reihenfolge ist zumindest hier nicht explizit vorgeschrieben soweit ich informiert bin oder hast du etwas dass gegensätzliches behauptet?
    nein, die Reihenfolge der Auswertung beim Ausführen ist nicht vorgeschrieben, nur was ausgewertet wird, ist ntl von Syntax-Regeln abhängig (z.B. Klammern vor Punktrechnung vor Strichrechnung). Von daher sind boolsche Funktionsaufruf-Auswertungen erlaubt und völlig korrekt, auch wenn sie nicht in Variablen zwischengespeichert werden.

    (editiert, präzisiert)

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo HaWe,
    Code:
    if ( a && b && c) ....
    Wenn a == FALSE ist, werden b und c gar nicht mehr ausgewertet, den egal welchen Wert b und c haben, kann das Resultat nie TRUE werden.
    Interessant wird es, wenn b und c Funktionsaufrufe sind, welche dann nicht ausgeführt werden.

    Ein BASIC-Interpreter muss zwangsläufig alle Ausdrücke auswerten, weil er etwas doof ist.
    Ein BASIC-Compiler kann das handhaben wie in C.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #13
    HaWe
    Gast
    Zitat Zitat von Peter(TOO) Beitrag anzeigen
    Hallo HaWe,
    Code:
    if ( a && b && c) ....
    Wenn a == FALSE ist, werden b und c gar nicht mehr ausgewertet, den egal welchen Wert b und c haben, kann das Resultat nie TRUE werden.
    Interessant wird es, wenn b und c Funktionsaufrufe sind, welche dann nicht ausgeführt werden.

    Ein BASIC-Interpreter muss zwangsläufig alle Ausdrücke auswerten, weil er etwas doof ist.
    Ein BASIC-Compiler kann das handhaben wie in C.

    MfG Peter(TOO)
    ja, das ist mir bekannt, und das habe ich auch gar nicht bestritten.
    Es ging nur speziell um Ceos' Hinweis in Bezug auf die Evaluierung von Funktionsrückgabewerten in Ausdrücken, auch ohne Zwischenspeicherung.

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. falsches LCD ?
    Von Christian3 im Forum Robby RP6
    Antworten: 5
    Letzter Beitrag: 23.06.2009, 19:59
  2. Falsches Fusebit gesetzt?
    Von Feuerfalke im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 29.11.2007, 19:02
  3. Atmega32 falsches Fuse
    Von Testman3000 im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 30.07.2007, 17:55
  4. Operationsverstärker - falsches Ausgangssignal
    Von scales im Forum Elektronik
    Antworten: 16
    Letzter Beitrag: 15.07.2006, 17:31
  5. CCBasic Compiler 1.33 Scrollrad-Funktion?
    Von Foxbat im Forum Robby CCRP5
    Antworten: 2
    Letzter Beitrag: 28.03.2005, 16:45

Berechtigungen

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

Labornetzteil AliExpress