Usar valores booleanos en C

Mehvish Ashiq 12 octubre 2023
  1. Valores booleanos en C
  2. Use el tipo bool para valores booleanos en C
  3. Use enum para valores booleanos en C
  4. Use typedef y #define para valores booleanos en C
Usar valores booleanos en C

El tutorial de hoy demuestra cómo emplear bool, enum, typedef y #define para usar valores booleanos en el lenguaje de programación C.

Valores booleanos en C

El bool (un tipo de datos booleano) está disponible de forma nativa en C99 y posteriores; debemos incluir la biblioteca stdbool.h para usar este tipo de datos. En C99, el tipo de datos nativo se conoce como _Bool.

Por otro lado, el bool es una macro de biblioteca estándar definida en el stdbool.h. Los objetos del tipo de datos _Bool contienen 1 o 0, mientras que true y false son las macros de la biblioteca stdbool.h.

Esto implica que un preprocesador C interpretará #if true como #if 1 a menos que stdbool.h esté incluido en el programa C. Mientras tanto, el preprocesador de C++ debe reconocer true de forma nativa como un lenguaje literal.

Use el tipo bool para valores booleanos en C

Código de ejemplo:

// library to use `bool`
#include <stdbool.h>
// library to use `printf()`
#include <stdio.h>

// main function
int main() {
  bool variableX = true;

  if (variableX) {
    printf("The value of 'variableX' is True");
  } else {
    printf("The value of 'variableX' is False");
  }
  return 0;
}

Producción :

The value of 'variableX' is True

Si tenemos C99 o más reciente, podemos usar el bool, un alias al _Bool. Debemos incluir una biblioteca (también direccionada como un archivo de encabezado) llamada stdbool.h para usar bool; de lo contrario, obtendremos un error.

Vea el programa anterior como un ejemplo práctico del uso del tipo bool.

Use enum para valores booleanos en C

Código de ejemplo:

// library to use `printf()`
#include <stdio.h>

// enum's declaration
typedef enum { false, true } boolean;

// main function
int main() {
  boolean variableX = false;

  if (variableX) {
    printf("The value of 'variableX' is True");
  } else {
    printf("The value of 'variableX' is False");
  }
  return 0;
}

Producción :

The value of 'variableX' is False

El fragmento de código dado anteriormente es una solución para aquellos que usan C89/90 o que no quieren usar el tipo bool nativo. Podemos usar la función enum para crear el tipo bool.

El enum (también llamado Enumeración) es un tipo de datos definido por el usuario en la programación C que se utiliza para asignar nombres a constantes integrales; ¿por qué? Los nombres hacen que el programa sea fácil de leer, comprender y mantener.

Usamos los valores booleanos creando un nuevo nombre para el tipo bool. Para eso, estamos usando la palabra clave typedef, que se usa para dar un nuevo nombre a un tipo (ver el código de ejemplo para esta sección donde estamos dando un nuevo nombre al tipo bool que es boolean).

Una vez que ejecutemos el código anterior, se creará un enum como el tipo bool. Además, ponga los elementos de enum como false y true.

La primera y segunda posición estarán ocupadas por false para mantener el 0 y true para mantener el 1.

Use typedef y #define para valores booleanos en C

Podemos usar los valores booleanos de las siguientes dos formas como alternativa al segundo enfoque en el que usamos enum para valores booleanos.

Código de ejemplo 1:

// library to use `printf()`
#include <stdio.h>
// declare a variable of `int` type
typedef int boolean;
// declare enum
enum { false, true };

// main function
int main() {
  boolean variableX = true;

  if (variableX) {
    printf("The value of 'variableX' is True");
  } else {
    printf("The value of 'variableX' is False");
  }
  return 0;
}

Código de ejemplo 2:

// library to use `printf()`
#include <stdio.h>
// declare a variable of `int` type
typedef int boolean;
// define macros
#define true 1;
#define false 0;

// main function
int main() {
  boolean variableX = true;

  if (variableX) {
    printf("The value of 'variableX' is True");
  } else {
    printf("The value of 'variableX' is False");
  }
  return 0;
}

Ambos ejemplos de código producen el mismo resultado que se indica a continuación.

Producción :

The value of 'variableX' is True

En el código de ejemplo 2, estamos usando #define (también llamada directiva de macro), que es una directiva de preprocesador utilizada para definir macros en un programa C.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook