Uso de valores booleanos en C

C no tiene ningún tipo booleano incorporado. ¿Cuál es la mejor manera de utilizarlos en C?

Solución

De mejor a peor:

Opción 1 (C99)

#include 

Opción 2

typedef enum { false, true } bool;

**Opción 3

typedef int bool;
enum { false, true };

**Opción 4

typedef int bool;
#define true 1
#define false 0

Explicación

  • La opción 1 funcionará sólo si utiliza C99 y es la "forma estándar" de hacerlo. Elija esto si es posible.
  • Las opciones 2, 3 y 4 tendrán en la práctica el mismo comportamiento idéntico. #2 y #3 no usan #defines sin embargo, lo que en mi opinión es mejor.

Si estás indeciso, ¡elige la #1!

Comentarios (0)

Un booleano en C es un número entero: cero para falso y distinto de cero para verdadero.

Véase también Tipo de datos booleanos, sección C, C++, Objective-C, AWK.

Comentarios (1)

Cualquier cosa que no sea cero se evalúa como verdadero en las operaciones booleanas, por lo que podría simplemente

#define TRUE 1
#define FALSE 0

y utilizar las constantes.

Comentarios (4)