Boolescher Datentyp C99?


93

Was ist der boolesche Datentyp C99 und wie wird er verwendet?

Antworten:


109

<stdbool.h>Header einschließen

#include <stdbool.h>

int main(void){
  bool b = false;
}

Makros trueund falseerweitert 1und 0jeweils.

Abschnitt 7.16 Boolescher Typ und Werte< stdbool.h >

  • 1 Der Header definiert <stdbool.h>vier Makros.
  • 2 Das Makro
    • bool wird zu _Bool erweitert.
  • 3 Die verbleibenden drei Makros eignen sich zur Verwendung in # if-Vorverarbeitungsanweisungen. Sie sind
    • true: wird auf die Ganzzahlkonstante 1 erweitert,
    • false: wird auf die Ganzzahlkonstante 0 erweitert, und
    • __bool_true_false_are_defined, das auf die Ganzzahlkonstante 1 erweitert wird.
  • 4 Ungeachtet der Bestimmungen von 7.1.3 kann ein Programm die Makros bool, true und false unterdefinieren und möglicherweise neu definieren.

17
Es sollte auch beachtet werden, dass die Konvertierung in _Bool(durch Zuweisung, Besetzung usw.) effektiv durch das Präfixieren des Ausdrucks mit erfolgt !!.
R .. GitHub STOP HELPING ICE

52

Bitte überprüfen Sie die Antwort hier in diesem verwandten Thread auf DaniWeb .

extrahiert und hier als bequeme Referenz zitiert: -


Verwendung neuer Schlüsselwörter in c99

_Bool : Der boolesche Typ von C99. Die direkte Verwendung von _Bool wird nur empfohlen, wenn Sie Legacy-Code verwalten, der bereits Makros für bool, true oder false definiert. Andernfalls werden diese Makros im <stdbool.h> Header standardisiert . Wenn Sie diesen Header einschließen, können Sie bool wie in C ++ verwenden.

#include <stdio.h>
#include <stdbool.h>

int main ( void )
{
  bool b = true;

  if ( b )
    printf ( "Yes\n" );
  else
    printf ( "No\n" );

  return 0;
}


18
+1 zur Erklärung, warum _Boolzusammen mit existiert bool. Sehr hilfreich, um es zu verstehen.
Eonil
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.