Verwenden Sie boolesche Werte in C

Mehvish Ashiq 12 Oktober 2023
  1. Boolesche Werte in C
  2. Verwenden Sie den Typ bool für boolesche Werte in C
  3. Verwenden Sie enum für boolesche Werte in C
  4. Verwenden Sie typedef und #define für boolesche Werte in C
Verwenden Sie boolesche Werte in C

Das heutige Tutorial zeigt, wie man bool, enum, typedef und #define verwendet, um boolesche Werte in der Programmiersprache C zu verwenden.

Boolesche Werte in C

Der bool (ein boolescher Datentyp) ist nativ in C99 und neuer verfügbar; Wir müssen die Bibliothek stdbool.h einbinden, um diesen Datentyp zu verwenden. In C99 ist der native Datentyp als _Bool bekannt.

Andererseits ist bool ein Standardbibliotheksmakro, das in stdbool.h definiert ist. Die Objekte vom Datentyp _Bool enthalten entweder 1 oder 0, während true und false die Makros aus der Bibliothek stdbool.h sind.

Dies impliziert, dass ein C-Präprozessor #if true als #if 1 interpretiert, es sei denn, die stdbool.h ist im C-Programm enthalten. In der Zwischenzeit muss der C++-Präprozessor true nativ als Sprachliteral erkennen.

Verwenden Sie den Typ bool für boolesche Werte in C

Beispielcode:

// 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;
}

Ausgang:

The value of 'variableX' is True

Wenn wir C99 oder neuer haben, können wir bool verwenden, ein Alias für _Bool. Wir müssen eine Bibliothek (auch als Header-Datei adressiert) namens stdbool.h einbinden, um bool zu verwenden; Andernfalls erhalten wir einen Fehler.

Sehen Sie sich das oben angegebene Programm als praktisches Beispiel für die Verwendung des Typs bool an.

Verwenden Sie enum für boolesche Werte in C

Beispielcode:

// 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;
}

Ausgang:

The value of 'variableX' is False

Das oben angegebene Code-Snippet ist eine Lösung für diejenigen, die C89/90 verwenden oder nicht den nativen bool-Typ verwenden möchten. Wir können die Funktion enum verwenden, um den Typ bool zu erstellen.

enum (auch Enumeration genannt) ist ein benutzerdefinierter Datentyp in der C-Programmierung, der verwendet wird, um ganzzahligen Konstanten Namen zuzuweisen; Warum? Die Namen machen das Programm einfach zu lesen, zu verstehen und zu warten.

Wir verwenden die booleschen Werte, indem wir einen neuen Namen für den Typ bool erstellen. Dafür verwenden wir das Schlüsselwort typedef, das verwendet wird, um einem Typ einen neuen Namen zu geben (siehe den Beispielcode für diesen Abschnitt, in dem wir dem Typ bool einen neuen Namen geben, nämlich boolean).

Sobald wir den oben angegebenen Code ausführen, wird ein enum als Typ bool erstellt. Setzen Sie außerdem die Elemente von enum als false und true ein.

Die erste und zweite Position werden mit false für 0 und true für 1 belegt.

Verwenden Sie typedef und #define für boolesche Werte in C

Als Alternative zum zweiten Ansatz, bei dem wir enum für boolesche Werte verwenden, können wir die booleschen Werte auf die folgenden zwei Arten verwenden.

Beispielcode 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;
}

Beispielcode 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;
}

Beide Codebeispiele erzeugen dasselbe Ergebnis wie unten angegeben.

Ausgang:

The value of 'variableX' is True

In Beispielcode 2 verwenden wir #define (auch Makrodirektive genannt), eine Präprozessordirektive, die zum Definieren von Makros in einem C-Programm verwendet wird.

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