Type de données booléen C99?


93

Quel est le type de données booléen C99 et comment l'utiliser?

Réponses:


109

Inclure l'en- <stdbool.h>tête

#include <stdbool.h>

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

Macros trueet falsedéveloppez respectivement vers 1et 0.

Section 7.16 Type et valeurs booléennes< stdbool.h >

  • 1 L'en-tête <stdbool.h>dé fi nit quatre macros.
  • 2 La macro
    • bool se développe en _Bool.
  • 3 Les trois macros restantes conviennent pour une utilisation dans les directives de prétraitement #if. Elles sont
    • true: qui se développe jusqu'à la constante entière 1,
    • false: qui se développe jusqu'à la constante entière 0, et
    • __bool_true_false_are_defined qui se développe jusqu'à la constante entière 1.
  • 4 Nonobstant les dispositions de 7.1.3, un programme peut annuler et peut-être redéfinir les macros bool, true et false.

17
Il convient également de noter que la conversion en _Bool(par affectation, conversion , etc.) se fait en fait en préfixant l'expression avec !!.
R .. GitHub STOP AIDER ICE

52

Veuillez consulter la réponse ici sur ce fil associé trouvé sur DaniWeb .

extrait et cité ici pour référence pratique: -


utilisation de nouveaux mots-clés dans c99

_Bool : type booléen de C99. L'utilisation directe de _Bool n'est recommandée que si vous gérez un code hérité qui définit déjà des macros pour bool, true ou false. Sinon, ces macros sont standardisées dans l'en- <stdbool.h> tête. Incluez cet en-tête et vous pouvez utiliser bool comme vous le feriez en 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 pour expliquer pourquoi _Boolexiste avec bool. Très utile pour le comprendre.
eonil
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.