:1 definiert auch keine boolesche Variable sondern einen Integer mit einer Breite von einem Bit. Und ein(!) Wert für true wird in stdbool.h definiert. Grundsätzlich sicher ist der Vergleich mit false, also == false oder != false. Und wenn es um Zahlenwerte geht: Ebenso, direkt vergleichen und nicht irgendwelche Tricksereien mit true/false.

mfG
Markus

Nachtrag: Das Unschön bezog sich mehr auf die Qualität des generierten Maschinencodes.