1/* $OpenBSD: stdbool.h,v 1.7 2015/09/04 23:47:09 daniel Exp $ */ 2 3/* 4 * Written by Marc Espie, September 25, 1999 5 * Public domain. 6 */ 7 8#ifndef _STDBOOL_H_ 9#define _STDBOOL_H_ 10 11#ifndef __cplusplus 12 13#if defined(__GNUC__) || \ 14 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901) 15/* Support for C99: type _Bool is already built-in. */ 16#define false 0 17#define true 1 18 19#else 20/* `_Bool' type must promote to `int' or `unsigned int'. */ 21typedef enum { 22 false = 0, 23 true = 1 24} _Bool; 25 26/* And those constants must also be available as macros. */ 27#define false false 28#define true true 29 30#endif 31 32/* User visible type `bool' is provided as a macro which may be redefined */ 33#define bool _Bool 34 35#else /* __cplusplus */ 36#define _Bool bool 37#define bool bool 38#define false false 39#define true true 40#endif /* __cplusplus */ 41 42/* Inform that everything is fine */ 43#define __bool_true_false_are_defined 1 44 45#endif /* _STDBOOL_H_ */ 46