Tipo de dato bool

Iniciado por AlbertoBSD, 18 Junio 2016, 15:17 PM

0 Miembros y 1 Visitante están viendo este tema.

AlbertoBSD

Hola.

En los libros de C que tengo nunca se mencionan los datos bool. Siempre usan un Dato entero para ellos.

Obvio es solo de C++ pero...

Ahorita busque sobre ellos y solo salen referencias vagas pero ninguna referencia oficial.

Segun esto solo encontre

El tipo bool es una incorporación reciente del lenguaje (1998)

Pero no menciona ninguna fuente. El uso de enteros como booleanos a mi me parece correcto siempre que solo los manejes como 0 y 1

Incluso creo que muchos compiladoradores hacen algo como:

typedef bool unsiged char;


Pero bueno las preguntas son:

¿A que estandar pertenece?
¿Donde esta la pagina de ese Estandar?

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

do-while

¡Buenas!

En C, por lo que siempre he leído, cero/NULL es falso y cualquier valor distinto de cero/NULL verdadero. Suficiente para funcionar y muy útil para devolver, por ejemplo, valores de diagnostico de funcionamiento desde funciones, ya que no es lo mismo decir si una función se ha ejecutado de forma correcta o incorrecta que decir que no se ha podido asignar memoria, que se ha intentado acceder a posiciones de memoria incorrectas o que se ha intentado calcular el logaritmo de un número negativo. Así, por ejemplo, una función puede devolver un entero formado por banderas que sea cero si todo ha ido bien o que active distintos bits según se hayan encontrado errores y así poder tomar decisiones desde la función llamadora. Con un simple if(valor=funcion(...)) ya puedes empezar a discriminar casos.

Otro caso muy útil es cuando una comparación en lugar de decirte si dos elementos son iguales o distintos te da el orden, según algún tipo de criterio de ordenación, del primero con respecto al segundo (<0 si el primero es menor, == 0 si son iguales o > 0 si el primero es mayor). No hay nada menos expresivo que un valor booleano, o si o no, sin valores intermedios ni ningún tipo información extra...

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

AlbertoBSD

Cita de: do-while en 18 Junio 2016, 16:00 PM
. No hay nada menos expresivo que un valor booleano, o si o no, sin valores intermedios ni ningún tipo información extra...

;-) ;-) Siempre he pensado asi y si asi he usafo los enteros de forma boolean.

Aun asi sigue la pregunta

¿Cual es el estandar de "bool" en lenguaje C++, si es que existe?

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

geeke

En C99 se ha incorporado el tipo _Bool este solo puede contener los valores 1 y 0 si le asignas un numero mayor que uno este se igualara a uno. También se introdujo la librería stdbool.h donde dispones de bool un alias de _Bool y sus conocidas macros true y false.

AlbertoBSD

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW