- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 17

Thema: int Variable, Grenzbereiche

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    872
    Zitat Zitat von Sisor Beitrag anzeigen
    Sicher? Sollte 2 sein, nicht 3.
    Vorsicht!
    Die Auflösung des Literals wird vom Precompiler übernommen.
    Für das Fragment:
    int main (void)
    {

    int8_t test = 3.1415/2 *2;
    if (test == 3)
    SetLED2();

    bekomme ich vom Compiler im AVR-GCC weder eine Warnung, noch einen Fehler. Im Listing sehe ich aber:

    000028b6 <main>:
    static inline void SetLED2()
    {
    PORTD.OUTSET = 0x02; }
    28b6: c0 e6 ldi r28, 0x60 ; 96
    28b8: d6 e0 ldi r29, 0x06 ; 6
    28ba: 12 e0 ldi r17, 0x02 ; 2
    28bc: 1d 83 std Y+5, r17 ; 0x05

    Da wird also weder eine Variable angelegt, noch im ganzzahligen Bereich, wie auf der eigentlichen Maschine, gerechnet.
    Insofern sind die oben angegebenen Beispielzeilen nicht wirklich tauglich, die Sache zu durchschauen.

    Besser (so, wie erwartet) wird's mit:
    int main (void)
    {
    int8_t test = 3.1415;
    test/=2;
    test*=2;
    if (test == 3)
    SetLED2();

    Hier castet sich der fraktale Anteil im Precompiler weg:
    test = 3.1415 ->3
    test /= 2 ->1
    test *= 2 ->2

    Es wird vom Compiler im Listing zwar immer noch keine Variable angelegt, aber der Aufruf von SetLED2() kommt auch nicht mehr.
    Geändert von Holomino (09.05.2020 um 15:43 Uhr)

Ähnliche Themen

  1. Variable auf LCD ausgeben
    Von Haveaniceday im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 20.07.2017, 18:57
  2. [ERLEDIGT] C++ Hinweis: variable 'pHelp' set but not used [-Wunused-but-set-variable]
    Von geWichtig im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 20.02.2017, 15:09
  3. Komplexe Variable
    Von DanielSan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 19.06.2011, 14:30
  4. if Variable > 1 then Variable + 1
    Von klaus1973 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 26.11.2005, 14:31
  5. Pin mit Variable vergleichen
    Von Kundesbanzler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 23.02.2005, 14:58

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test