bool (C++)
Esta palavra-chave é um tipo interno.Uma variável desse tipo pode ter valores true e false.Expressões condicionais têm o tipo de bool e portanto, tem valores do tipo bool.Por exemplo, i!=0 agora tem true ou false dependendo do valor de i.
Os valores true e false têm a seguinte relação:
!false == true
!true == false
Na instrução a seguir:
if (condexpr1) statement1;
Se condexpr1 é true, statement1 será sempre executada; Se condexpr1 é false, statement1 nunca é executado.
Quando um sufixo ou prefixo ++ operador é aplicado a uma variável do tipo bool, a variável é definida como true.O sufixo ou prefixo -- operador não pode ser aplicado a uma variável desse tipo.
O bool tipo participa em promoções integrais.Um r-value do tipo bool pode ser convertido em um r-value do tipo int, com false se tornando zero e true está se tornando um.Como um tipo distinto, bool participa na resolução de sobrecarga.
Específicos do Microsoft
No Visual C + + 4.2, os arquivos de cabeçalho do C++ padrão contidos um typedef que equiparada bool com int.No Visual C++ 5.0 e posterior, bool é implementado como um tipo interno com um tamanho de 1 bytes.Isso significa que para o Visual C++ 4.2, uma chamada de sizeof(bool) produz 4, enquanto no Visual C++ 5.0 e posterior, o mesmo produz chamada 1.Isso pode causar memória corrupção problemas se você tiver definido os membros da estrutura do tipo bool e/no Visual C++ 4.2 e são a mistura de objeto (OBJ) de arquivos ou DLLs criado com os compiladores 4.2 e 5.0 ou posteriores.
O __BOOL_DEFINED macro pode ser usada para encapsular o código que é dependente ou não bool é suportado.
Exemplo
// bool.cpp
#include <stdio.h>
int main()
{
#if !defined(__BOOL_DEFINED)
printf_s("bool is not supported\n");
#elif defined(__BOOL_DEFINED)
printf_s("bool is supported\n");
#endif
}