- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: volatile, const

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo, die den compiler bauen ,wissen es nicht immer
    Genau. Aber du weisst es.
    Warum gehst du nicht ins Heise-Forum zum rumtrollen?

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    ach ja:
    auch gibt es einige "programmierdussel" im "avr-forum".
    ist das hier ein Forum für den Austausch von Leuten die sich damit befassen oder sind hier nur "Profis" wie du zugelassen? Es ist auch immer mal wieder nervig wenn die selben Anfängerfragen zum 100sten Mal auftauchen, aber genau dafür ist das Forum doch gut.
    Warum solltest du also jemand namentlich nennen können? *kopfschüttel*

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    26.03.2005
    Beiträge
    11

    Re: volatile, const

    Zitat Zitat von pebisoft
    hallo,
    "volatile" ist das gegenteil von "const". in volatile können
    die variablen während des programmablaufes wechseln.
    Jein. Das ist aber noch nicht alles. Volatile ist primär eine Kennzeichnung für den Optimiere im gcc, die angibt, dass eine Variable auch ausserhalb des regulären Programmflusses den Wert ändern kann, z.B. durch eine Interrupt-Routine oder weil die Variable auf ein Hardware-Register gemapt ist.
    Volatile heisst für der Optimierer "don't touch".
    Wenn eine Volatile Variable gesetzt bzw. abgefragt wird, wird diese Operation auch immer ausgeführt.

    Beispiel:

    Code:
    int t;
    t = 0;
    if (t) {
      // Wird vom Compiler idR wegoptimiert, da er erkennt, dass t=0 ist.
    }
    
    volatile int t;
    t = 0;
    if (t) {
      // Wird nicht wegoptimiert
    }
    -Klaus

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    jein, das stimmt nicht alles, die variable wird nicht wegoptimiert, sie ist immer noch existens, bloss sie wird mi einer beliebigen zahl belegt, die einem bei der fehlersuche ganz schön zu schaffen machen kann.
    mfg pebisoft

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    Argl! Ist das denn so schwer? KlausR hat doch ein gutes Beispiel gebracht.

    Die Variable wird in seinem Beispiel an der Stelle "if(t)" wegoptimiert, weil t=0 und damit genauso "if(0)" stehen könnte.
    Die Variable wurde ja deklariert und kann damit nicht einfach gelöscht werden (sio wie dein Beitrag impliziert). Aber an der angegebenen Stelle verschwindet die weil unnötig (aus Sicht des Optimierers).

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    er schreibt "in der regel", das heisst, es machen nicht alle winavr-versionen.
    mfg pebisoft

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    37
    Beiträge
    215
    Pepisoft die hamm schon recht.
    Es wird auch nicht die Variable wegoptimiert sondern nur die if Anweisung oder for() Schleife etc.
    Das die Variable ohne volatile unsinnige Wert bekommt ist auch nicht automatisch so. Das war nur in unserem Fall (srf04 Messung) so da wir der Variable Werte von Hardwareregistern zugewiesen haben
    Und WinAVR programmiert niemand, das ist nur der GNU GCC Compiler von dem das abhängt.
    Gruß Muraad

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress