Type de données booléen C99?

93

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

éonil
la source

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.
Prasoon Saurav
la source
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;
}

Evandrix
la source
18
+1 pour expliquer pourquoi _Boolexiste avec bool. Très utile pour le comprendre.
eonil