C99 boolean data type?
What's the C99 boolea开发者_C百科n data type and how to use it?
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.
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;
}
精彩评论