Ich würds so machen:
1 | for(int8_t i=15; i>=0; i-=1)
|
2 | (sbyte & (1<<i)) ? puls() : pause();
|
Ich weis, dass viele Leute das ? nicht so toll finden, aber ich finde es
bei sehr kurzen Codesequenzen übersichtlicher als auf vier Zeilen
gestreckt.
Und wer kein >=c99 verwendet, muss das int8_t vor die for-schleife
setzen.
W.S. schrieb:
> sowas leiden wie die Pest:
> Rufus Τ. Firefly schrieb:
>> uint16_t Vergleich = 1 << 15;
>
> Schreib lieber
> uint16_t Vergleich;
>
> ...
> Vergleich = 1<<15;
> while (....
Genau das versuche ich zu vermeiden, da man sonst möglicherweise
ausversehen die Variable benutzt bevor man sie initialisiert hat. Und je
nach dem was vorher im RAM stand, bekommt man schwer reproduzierbare
Ergebnisse.
> Es ist ne Sache der Vermeidung von Schusselfehlern,
> direkt vor der Verwendung seine Schleifenvariable zu setzen, weil man
> sonst gar zu häufig bei etwas längeren Funktionen selbiges vergißt (Ich
> hab's ja ganz oben schon gemacht..)
Ich deklariere meine Variablen erst dort, wo ich sie benötige,
idealerweise im Schleifenkopf selbst. Nervt, wenn man wieder zum
Funktionsanfang scrollen muss, nur um nachzusehen, ob die Variable jetzt
ein int8_t oder ein uint8_t war. Und schön aussehen tut so ein
Variablenblob am Anfang auch nicht.