Desde ANSI C99 existe _Bool
ou bool
via stdbool.h
. Mas existe também um especificador de formato printf
para bool?
Refiro-me a algo como naquele pseudo-código:
bool x = true;
printf("%B\n", x);
o que imprimia:
true
Há't. Mas como qualquer tipo integral mais curto do que int
é promovido para int
quando passado para printf()
s argumentos variadic, você pode utilizar %d
:
bool x = true;
printf("%d\n", x); // prints 1
Mas porque não?
printf(x ? "true" : "false");
ou melhor
printf("%s", x ? "true" : "false");
ou ainda melhor
fputs(x ? "true" : "false", stdout);
em vez disso?
Não há um especificador de formato para bool. Você pode imprimir usando alguns dos especificadores existentes para imprimir tipos integrais ou fazer algo mais extravagante:
printf("%s", x?"true":"false");