-
        

Ergebnis 1 bis 2 von 2

Thema: Darf der Compiler das ??? (Kaputt optimiert)

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2007
    Ort
    Berlin
    Beiträge
    526

    Darf der Compiler das ??? (Kaputt optimiert)

    Anzeige

    Hallo,
    ich habe (hatte) ein Problem bei einer Berechnung in "C"
    Nachdem ich mir den Assemblercode ansah, wurde der Fehler offensichtlich.
    Für eine Division mit 16384 hat der Compiler einen Shift Rechts 14 eingesetzt.
    Das ist für "positive" Werte völlig okay, aber bei negativen Werten geht es natürlich schief, es sei denn er hätte einen Spezialshift welcher das Vorzeichen beachtet. Hat der Cortex M3 aber nicht und genau für den wurde der Code erstellt.

    Um es kurz zu machen, anbei der Code mit der Problemlösung.

    Nun die eigentliche Frage:
    Kommt nicht bei jeder Berechnung ohne Typecast als "Default(Standard) ein "int" heraus ? dann hätte der Compiler doch nicht einen Shift benutzen dürfen ?

    Siro

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei der Berechnung wird der "größte" Datentyp übernommen. Auch bei der Subtraktion von 2 Unsigned werten bleibt das Unsigned.

Ähnliche Themen

  1. Darf man einen Akku hinlegen?
    Von sebriko im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 19.06.2008, 16:07
  2. Wie heiß darf ein Bauteil werden?
    Von Rohbotiker im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 15.10.2007, 13:06
  3. Darf ich vorstellen...Flaky !! (Neu Video!)
    Von quad im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 29
    Letzter Beitrag: 26.12.2005, 22:32
  4. wie warm darf so ein atmega32 werden?
    Von Zeroeightfifteen im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 02.06.2005, 17:29
  5. LPT-Kabel... wie lang darf es sein ???
    Von michiE im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 28.05.2005, 14:47

Berechtigungen

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