C99 boolean data type?
CTypesBooleanC99C 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;
}