Zitat Zitat von dgrobot
.. eine weniger trickreiche C-programmierung. ..

if (rx_aktiv) if (! --rx_aktiv) ;
Ich habe mir das so angewöhnt weil es für mich so besser zu lesen ist.

Um mein Gewissen zu beruhigen hab ich mal im "Kernigan + Ritchi" nachgelesen.

Zitat aus dem Kapitel:
2.6 Vergleiche und logische Verknüpfungen
Der Negationsoperator !, der wie ein Vorzeichen verwendet wird, liefert 0, wenn sein Operand nicht 0 ist, und 1, wenn sein Operand 0 ist. (in C gilt jeder numerische Wert, der von 0 verschieden ist, in Bedingungen als wahr, und der numerische Wert 0 gilt in Bedingungen als falsch.) Der Operatur ! wird häufig bei

if (!inword)
verwendet, anstelle von
if (inword == 0)

Man kann nicht völlig verallgemeinern, welche Schreibweise besser ist. Angaben wie !inword sind gut verständlich ("wenn nicht innerhalb eines Wortes"), aber kompliziertere Formulierungen sind oft scher verständlich.


Der letzten Satz drückt es ja schon aus. Das war den Erfindern schon 1977 klar. (Meine Ausgabe ist von 1983)