What's the C99 boolean data type and how to use it?
            Asked
            
        
        
            Active
            
        
            Viewed 7.4k times
        
    2 Answers
124
            Include <stdbool.h> header
#include <stdbool.h>
int main(void){
  bool b = false;
}
Macros true and false expand to 1 and 0 respectively.
Section 7.16 Boolean type and values < stdbool.h >
- 1 The header
<stdbool.h>defines four macros.- 2 The macro
- bool expands to _Bool.
- 3 The remaining three macros are suitable for use in #if preprocessing directives. They are
- true : which expands to the integer constant 1,
- false: which expands to the integer constant 0, and
- __bool_true_false_are_defined which expands to the integer constant 1.
- 4 Notwithstanding the provisions of 7.1.3, a program may undefine and perhaps then redefine the macros bool, true, and false.
 
    
    
        Prasoon Saurav
        
- 91,295
- 49
- 239
- 345
- 
                    19It should also be noted that conversion to `_Bool` (by assignment, cast, etc.) is effectively by prefixing the expression with `!!`. – R.. GitHub STOP HELPING ICE Jan 22 '11 at 13:12
61
            
            
        Please do check out the answer here on this related thread found on DaniWeb.
extracted and quoted here for convenient reference:-
usage of new keywords in c99
_Bool: C99's boolean type. Using _Bool directly is only recommended if you're maintaining legacy code that already defines macros for bool, true, or false. Otherwise, those macros are standardized in the
<stdbool.h>header. Include that header and you can use bool just like you would 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;
}
 
    
    
        John Kugelman
        
- 349,597
- 67
- 533
- 578
 
    
    
        evandrix
        
- 6,041
- 4
- 27
- 38
- 
                    22+1 for explanation of why `_Bool` exists along with `bool`. Very helpful to understand it. – eonil Nov 17 '14 at 23:15
