Compartilhar via


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
}
  

Consulte também

Referência

Palavras-chave C++

Tipos fundamentais (C++)