Usando verdadeiro e falso em C

Tanto quanto eu posso ver, existem três maneiras de usar booleanos em c

com o tipo bool, usando true e falsedefinindo usando pré-processador#define FALSE 0 ... #define TRUE !(FALSE)Apenas para usar constantes diretamente, ou seja, 1 e 0

existem outros métodos que eu perdi? Quais são os prós e os contras dos diferentes métodos?

Suponho que o mais rápido seria o número 3, 2 ainda é mais facilmente legível (embora a negação bit a bit adicione um pouco à sobrecarga), 1 é mais legível e não é compatível com todos os compiladores.

questionAnswers(14)

yourAnswerToTheQuestion