volatile



  • Wer kann mir vernünftig erklären, was "volatile" bewirkt?



  • das bedeutet, dass der Compiler diese Variable nicht wegoptimieren darf.

    bsp:

    void foo(int* i)
    {
      int* p=i;
      do_something_with(p);
    }
    

    jetzt wuerde der Compiler p einfach wegoptimieren und an do_something_with gleich i uebergeben.

    Manchmal will man das aber nicht (wenn man zB mehrere Threads hat, und die greifen auf variablen anderer Threads zu - dann waere es fatal, wenn diese variable nicht da waere)


Anmelden zum Antworten