Tipo de dados booleano C99?

93

Qual é o tipo de dado booleano C99 e como usá-lo?

eonil
fonte

Respostas:

109

Incluir <stdbool.h>cabeçalho

#include <stdbool.h>

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

Macros truee falseexpandem para 1e 0respectivamente.

Tipo e valores booleanos da seção7.16 < stdbool.h >

  • 1 O cabeçalho <stdbool.h>define quatro macros.
  • 2 A macro
    • bool se expande para _Bool.
  • 3 As três macros restantes são adequadas para uso nas diretivas de pré-processamento #if. Eles são
    • verdadeiro: que se expande para a constante inteira 1,
    • falso: que se expande para a constante inteira 0, e
    • __bool_true_false_are_defined que se expande para a constante inteira 1.
  • 4 Não obstante as provisões de 7.1.3, um programa pode indefinir e talvez então redefinir as macros bool, true e false.
Prasoon Saurav
fonte
17
Também deve ser observado que a conversão para _Bool(por atribuição, conversão , etc.) é efetivamente prefixada à expressão com !!.
R .. GitHub PARAR DE AJUDAR O ICE
52

Por favor, verifique a resposta aqui neste tópico relacionado encontrado no DaniWeb .

extraído e citado aqui para referência conveniente: -


uso de novas palavras-chave em c99

_Bool : tipo booleano do C99. Usar _Bool diretamente só é recomendado se você estiver mantendo um código legado que já define macros para bool, true ou false. Caso contrário, essas macros são padronizadas no <stdbool.h> cabeçalho. Inclua esse cabeçalho e você poderá usar bool como faria em 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
fonte
18
1 para uma explicação do porquê _Boolexiste junto com bool. Muito útil para entender isso.
eonil