title: size of types in c/c++
body: <p>I recently asked a question <a href="https://stackoverflow.com/q/11600378/331785">here</a> regarding the size of <code>char</code>. Looking at my question, it brought me to another question:<br>
  Are things like number of bits in a <code>char</code> or <code>sizeof(int)</code> CPU dependent, OS dependent, compiler dependent, or some combination of the above? Who decides the <code>sizeof(int)</code> in my compiler is 4?</p>
  
  <p><strong>EDIT:</strong> Let me explain: For example, my compiler on a 64bit system uses 32bit <code>int</code>. Is this set by the compiler or by the OS to be the standard int for all compilers on this (exact) OS/platform combination? How about <code>char</code> = 8 bits? Can a OS decide it is going to use 16bit chars? Can a compiler?</p>