Search code examples
ctypesbooleanc99

What is the C99 _Bool data type and how do you use it?


What is the C99 _Bool data type and how do you use it?


Solution

  • 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.