Saltar al contenido

¿Cuál es la diferencia entre BOOL y bool?

Solución:

bool es un tipo C ++ incorporado mientras BOOL es un tipo específico de Microsoft que se define como un int. Lo puedes encontrar en windef.h:

typedef int                 BOOL;

#ifndef FALSE
#define FALSE               0
#endif

#ifndef TRUE
#define TRUE                1
#endif

Los valores de un bool están true y false, mientras que para BOOL puedes usar cualquier int valor, aunque TRUE y FALSE las macros se definen en el windef.h encabezamiento.

Esto significa que el sizeof el operador producirá 1 para bool (el estándar establece, sin embargo, que el tamaño de bool está definida por la implementación), y 4 para BOOL.

Fuente: artículo de Codeguru

La API de Windows tenía este tipo antes bool fue lanzado a C ++. Y es por eso que todavía existe en todas las funciones de Windows que toman BOOL. C no es compatible bool tipo de datos, por lo tanto BOOL tiene que quedarse.

Para agregar a lo que ha dicho luvieere, puede devolver algo diferente a TRUE o FALSE de una función que devuelve un BOOL p.ej,

BOOL myFunc(int a)
{
    if (a < 3) return FALSE;
    else if (a > 3) return TRUE;
    else return 2;
}

Y esto es posible porque un BOOL es esencialmente un int.

Tenga en cuenta que esto no es aconsejable ya que destruye gravemente la legibilidad general del código, pero es algo que puede encontrar y se preguntará por qué es así.

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *