volatile



  • Hi,
    kann mir einer helfen...

    ich hab hier nen für mich noch nicht dagewesenen fehler, dessen grund ich nicht nachvollziehen kann...
    Ein tip würde schon reichen.

    Die folgende Zeilen in meinem Programm werden offensichtlich beim compilieren
    wegoptimiert. Nach der übersetzung werden mir fehler in völlig anderen zeilen angezeigt. Die Warning für (volatile int) wird 3 zeile vorher angezeigt. Und auch wenn ich debuge springe ich in z.B. Leerzeilen und kann diese ausführen. Im Speicher fehlen einfach diese zeilen.
    So richtig weiss ich nicht weiter.

    if (err.error == MOBY_OK)
    {
    WaitForSingleObject(sync,INFINITE);
    err.error=(volatile int) err1.error;
    }
    

    irgendwas geht bei der übersetzung schief. ich nutze visual c++ 7.sollte aber eigendlich egal sein...
    danke



  • Benutzt du Makros?



  • vampy90 schrieb:

    Und auch wenn ich debuge springe ich in z.B. Leerzeilen und kann diese ausführen.

    Hört sich für mich nach nicht aktualisierten Compiles an. Versuch den kompletten Quellcode neu zu compilieren, evtl. vorher noch die Ausgabeverzeichnisse bereinigen.



  • *doppelpost*



  • Das kann schon sein. Wenn z.B. MOBY_OK ein #define auf -1 ist, und err.error ist unsigned, dann kann das nie gleich sein, daher wird's gleich weggelassen vom Compiler.



  • Ringding schrieb:

    Das kann schon sein. Wenn z.B. MOBY_OK ein #define auf -1 ist, und err.error ist unsigned, dann kann das nie gleich sein, daher wird's gleich weggelassen vom Compiler.

    Nein, er würde dann -1 nach unsigned konvertieren und damit vergleichen.



  • Hmm, stimmt.


Anmelden zum Antworten