title: interfacing with stdbool.h C++
body: <p>In a project I am interfacing between C++ and a C library that uses stdbool.h defined as such.</p>
  
  <pre><code>#ifndef _STDBOOL_H
  #define _STDBOOL_H
  
  /* C99 Boolean types for compilers without C99 support */
  /* http://www.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html */
  #if !defined(__cplusplus)
  
  #if !defined(__GNUC__)
  /* _Bool builtin type is included in GCC */
  typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
  #endif
  
  #define bool _Bool
  #define true 1
  #define false 0
  #define __bool_true_false_are_defined 1
  
  #endif
  
  #endif
  </code></pre>
  
  <p>Some structures have <code>bool</code> members. So if I have one of these structures defined as local variables within a C++ function and pass it to a C function the sizes are inconsistent between C++ and C as bool is one bye in C++ and 4 in C.</p>
  
  <p>Does anyone have any advice to how to overcome this without resorting to my current solution which is</p>
  
  <pre><code>//#define bool _Bool
  #define bool unsigned char
  </code></pre>
  
  <p>Which is against the C99 standard for <a href="http://www.opengroup.org/onlinepubs/000095399/basedefs/stdbool.h.html" rel="noreferrer">stdbool.h</a></p>