Tipo di dati booleano C99?


93

Qual è il tipo di dati booleano C99 e come usarlo?

Risposte:


109

Includi <stdbool.h>intestazione

#include <stdbool.h>

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

Macro trueed falseespandere rispettivamente in 1e 0.

Tipo e valori booleani della sezione7.16 < stdbool.h >

  • 1 L'intestazione <stdbool.h>definisce quattro macro.
  • 2 La macro
    • bool si espande in _Bool.
  • 3 Le restanti tre macro sono adatte per l'uso nelle direttive di pre-elaborazione #if. Loro sono
    • true: che si espande alla costante intera 1,
    • false: che si espande alla costante intera 0 e
    • __bool_true_false_are_defined che si espande alla costante intera 1.
  • 4 Nonostante le disposizioni di 7.1.3, un programma può annullare la definizione e forse quindi ridefinire le macro bool, true e false.

17
Va inoltre notato che la conversione in _Bool(per assegnazione, cast, ecc.) Avviene effettivamente anteponendo all'espressione !!.
R .. GitHub SMETTA DI AIUTARE IL GHIACCIO

52

Si prega di controllare la risposta qui su questo thread correlato trovato su DaniWeb .

qui estratto e citato per comodo riferimento: -


utilizzo di nuove parole chiave in c99

_Bool : tipo booleano di C99. L'utilizzo diretto di _Bool è consigliato solo se si mantiene un codice legacy che definisce già macro per bool, true o false. Altrimenti, quelle macro sono standardizzate <stdbool.h> nell'intestazione. Includi quell'intestazione e puoi usare bool proprio come faresti in C ++.

#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 per la spiegazione del perché _Boolesiste insieme a bool. Molto utile per capirlo.
eonil
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.