title: Why was the boolean data type not implemented in C
body: <p>One of my friends asked a question, why is there no <code>Boolean</code> data type in the C programming language. I did a bit of searching and reading. I got few questions and answers in stack overflow saying that,</p>
  
  <ol>
  <li>All data types should be addressable, and a bit cannot be addressed.</li>
  <li>The basic data structure at the hardware level of mainstream CPUs is a byte. Operating on bits in these CPUs require additional processing.</li>
  </ol>
  
  <p>We can use a bool in this manner</p>
  
  <pre><code>#define bool int
  #define TRUE 1
  #define FALSE 0
  </code></pre>
  
  <p>or use <code>typedef</code>s.</p>
  
  <p>But my question is this: why wasn't it implemented as a data type in C, even after  so many years. doesn't it make sense to implement a one byte data type to store a boolean value rather than using <code>int</code> or <code>short</code> explicitly.</p>