Bitte um kurze Programmerklärung



  • Hallöchen!

    Kann mir mal bitte jemand diese paar Zeilen erklären.
    Das kriege ich gerade nicht auf die Kette 😡

    void delay(void) {
    	unsigned n = 0;
    	do {
    		n--;
    		} while(n);
    	}
    

    Besten Dank schon einmal



  • n wird auf 0 gesetzt. Anschließend wird n immer wieder um 1 verringert bis n wieder 0 ist. Das besondere ist, dass man hier einen Überlauf ausnutzt. Daher ist 0 minus 1 bei unsigned nicht -1 sondern 4294967295 (bei 32-Bit). Die Schleife läuft also ziemlich lange 🙂 Hoffe ich hab es verständlich erklärt.



  • Moin!

    Das mit dem Überlauf habe ich vorher nicht geschnallt.
    Aber nun: Besten Dank!

    Cheers


Anmelden zum Antworten