title: short short int in c?
body: <p>I'm trying to squeeze as much out of my memory as possible.
  I have a matrix of <code>4.9999995e13</code> ints but they only need to be true or false - basically I only need one bit of storage for each of these ints.</p>
  
  <p>I understand that there are no single bit types in C (maybe someone can explain why, to me), and I also know that if a <code>short short int</code> existed it would be 1 byte, same as char. However all of the logical operations in C return ints (as well as a few other functions).</p>
  
  <p>So my questions are:</p>
  
  <ul>
  <li>Is there some way of making a <code>short short int</code> exist?</li>
  <li>If I was to use <code>char</code> instead, would I have performance decrease because of all the casting to <code>int</code> that would have to be done?</li>
  <li>Is there another way that I'm missing?</li>
  </ul>
  
  <p>Just in-case it's relevant, I am compiling with GCC for C99.</p>
  
  <p><em>EDIT</em> I've just seen on <a href="http://en.wikipedia.org/wiki/C_syntax#Primitive_data_types" rel="nofollow">this wikipedia page</a> that there is a <code>_Bool</code> type, is this actually standard?</p>