Visual Studio Debugging: in einer Bool variable steht 112???



  • Hi!
    Ich Debugge gerade mit Visual Studio ein C++ programm. Ich habe mich gewunder, dass eine IF-Afrage immer durch "true" ausgelöst wird. Ich habe mal einem Breakpoint gesetzt. Wenn ich dann dort stoppe, steht in der betreffedne bool Variable "112" wenn man mit der Maus drüber fährt
    Wie kann das sein?



  • Alle Zahlen ungleich 0 werden als true interpretiert.

    if ( true ) { /* wird ausgefuehrt */ }
    if ( 1 ) { /* wird ausgefuehrt */ }
    if ( -20 ) { /* wird ausgefuehrt */ }
    
    if ( false ) { /* wird NICHT ausgefuehrt */ }
    if ( 0 ) { /* wird NICHT ausgefuehrt */ }
    

    Warum der Wert 112 drinsteht weiss ich nicht. Wie sieht denn deine if-Abfage aus?



  • Ich habs rausbekommen. Die Variable wurd durch einen Fehler meinerseits nicht initialisiert.

    Warumd er Compiler dann integers überhaupt für booleans anzeigt verstehe ich an der Stelle nicht. Irgendwie unlogisch.



  • SchlitzInDaHaus schrieb:

    Warumd er Compiler dann integers überhaupt für booleans anzeigt verstehe ich an der Stelle nicht. Irgendwie unlogisch.

    Das ist nicht der Compiler sondern der Debugger (der Compiler macht nichts zur Laufzeit). Eventuell weiss der Debugger gar nicht, dass es sich um eine bool-Variable handelt (im Binary ist diese Information nicht enthalten, da es nicht relevant ist).



  • C++ verwendet doch 1 volles Byte für bools. Da passt eine 112 eben rein. 😉


Anmelden zum Antworten