Int Zahl Überlauf??



  • Das ist viel zu low-level, um es auf scanf anzuwenden. Dazu müßtest du den Maschinencode der Implementierung kennen. Das OF wird ja nicht nur beim Überlauf gesetzt, sondern auch bei der nächsten Berechnung, die keinen Überlauf produziert, rückgesetzt. Also selbst wenn tatsächlich mal OF gesetzt ist, weißt du nach scanf nicht, ob es da entstanden ist wo du denkst.

    BTW _asm ist nicht ANSI-C. asm ist ein C++-Schlüsselwort, aber welcher Assembler wie eingebunden wird, steht nicht im Standard.



  • Hmmm...da hast du allerdings recht. Daran hab ich gar nicht gedacht, scanf
    kann einem ja bereits dazwischenfunken.

    Ich denke mal, dass es dann nicht moeglich ist, zu pruefen ob ein Overflow
    stattgefunden hat, ausser man liesst die Zahl als Text ein, dann entsteht
    natuerlich kein Overflow, da es ja lediglich Text ist.

    Man koennte die Zahl, welche man als Text einliesst, mit dem C-String
    von itoa ( INT_MAX ); vergleiche, allerdings ist itoa kein ANSI-C (laut meiner
    Doku). Da er aber keine C-Strings verwenden darf...

    Tjo, sonst wuesste ich nicht wie.

    mfg
    v R


Anmelden zum Antworten