bool (C++)
Esta palabra clave es un tipo integrado.una variable de este tipo puede tener valores TRUE y Falso.las expresiones condicionales tienen el tipo bool y así que tienen valores de boolescrito.Por ejemplo, i!=0 tiene ahora TRUE o Falso según el valor de i.
los valores TRUE y Falso tienen la relación siguiente:
!false == true
!true == false
En la siguiente instrucción:
if (condexpr1) statement1;
Si condexpr1 es TRUE, statement1 siempre se ejecuta; si condexpr1 es Falso, statement1 nunca se ejecuta.
Cuando se aplican a un operador de ++ postfijo o de prefijo a una variable de boolescrita, la variable se establece en TRUE.El operador de -- postfijo o de prefijo no se puede aplicar a una variable de este tipo.
el tipo de bool participa en promociones enteras.Un r-value de bool tipo se pueda convertir en un r-value de inttipo, con Falso cero que se convierte y TRUE el desarrollo.Como un tipo distinto, bool participa en la resolución de sobrecarga.
Específicos de Microsoft
En Visual C++4.2, archivos de encabezado estándar de C++ contenían typedef que se comparaban bool con int.En Visual C++ 5,0 y versiones posteriores, se implementa bool como una cuenta integrada escrito con un tamaño de 1 byte.Eso significa que para Visual C++ 4,2, una llamada de sizeof (bool) produce 4, mientras que en Visual C++ 5,0 y versiones posteriores, la misma llamada provoca 1.Esto puede producir problemas de daños de memoria si tiene miembros de estructura definida de bool escrito en Visual C++ 4,2 y se mezclan los archivos objeto o archivos DLL compilados con los 4,2 y los 5,0 o los compiladores posteriores.
La macro de __BOOL_DEFINED se puede utilizar para ajustar el código que está dependiente activado si bool es.
Ejemplo
// 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
}