- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 12 von 12

Thema: If-Schleife wird nicht ausgeführt

  1. #11
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    Anzeige

    E-Bike
    Danke für den Test askazo.

    Das ist jetzt zwar nicht das erwartete Zitat aus einer Compileranleitung, aber macht erst einmal einen nachvollziehbaren Eindruck.
    Mich hat nur die Aussage stutzig gemacht, dass man das volatile sowohl vor als auch hinter den Typ schreiben kann.

    sast

    雅思特史特芬
    开发及研究

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2005
    Alter
    71
    Beiträge
    157
    Hi,

    das liegt daran, dass der Datentyp "volatile int" ist und nicht die Variable! Der Typ bezieht sich dann auf alle folgenden Variablen in der gleichen Anweisung.

    Ist z.B. ganz analog zu "unsigned": unsigned int t1, t2;

    Beide(!) Variablen sind vom Typ "unsigned int".

    Das ginge auch: volatile unsigned int vui1, vui1;

    Wenn dein Compiler "typedef" erlaubt, kannst du schreiben:
    typedef volatile unsigned int vui_t;
    vui_t foo1, foo2;
    vui_t *foo3 = &foo2;
    foo3 ist dann ein nicht volatiler Pointer auf eine Variable eines volatilen Datentyps. Das heißt: foo3 kann im Register gehalten werden, aber der referenzierte Variableninhalt (d.h. foo2) muss jedes mal wieder neu gelesen werden.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress