Em C não existe um tipo nativo booleano, temos 0 como falso e tudo diferente de 0 é verdadeiro. Em C++ existe o tipo booleano, onde verdadeiro e falso correspondem respectivamente a 0 e 1.
Uma forma de fazer um “cast” em C para um tipo booleano compatível com C++ seria usando a dupla negação, como no exemplo a seguir.
int value1 = 0; int value2 = 1; int value3 = 50; int value4 = -1; printf("value1 = %d\n", !!value1); // Imprime value1 = 0 printf("value2 = %d\n", !!value2); // Imprime value2 = 1 printf("value3 = %d\n", !!value3); // Imprime value3 = 1 printf("value4 = %d\n", !!value4); // Imprime value4 = 1
“Em C++ existe o tipo booleano, onde verdadeiro e falso correspondem respectivamente a 0 e 1.”
Não seria o contrário?