C99 boolean data type?

CTypesBooleanC99

C Problem Overview


What's the C99 boolean data type and how to use it?

C Solutions


Solution 1 - C

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.

Solution 2 - C

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;
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioneonilView Question on Stackoverflow
Solution 1 - CPrasoon SauravView Answer on Stackoverflow
Solution 2 - CevandrixView Answer on Stackoverflow