title: Understanding sizeof(char) in 32 bit C compilers
body: <p><strong>(sizeof) char</strong> always returns <strong>1</strong> in 32 bit GCC compiler. </p>
  
  <p>But since the basic block size in 32 bit compiler is 4, How does char occupy a single byte when the basic size is 4 bytes???</p>
  
  <p>Considering the following :</p>
  
  <pre><code>struct st 
  {
  int a;
  char c;
  };
  </code></pre>
  
  <p><strong>sizeof(st) returns as 8</strong> as agreed with the default block size of 4 bytes <strong>(since 2 blocks are allotted)</strong></p>
  
  <p>I can never understand why <strong>sizeof(char) returns as 1</strong> when it is allotted a block of size 4.</p>
  
  <p>Can someone pls explain this??? </p>
  
  <p>I would be very thankful for any replies explaining it!!!</p>
  
  <p>EDIT : The typo of 'bits' has been changed to 'bytes'. I ask Sorry to the person who made the first edit. I rollbacked the EDIT since I did not notice the change U made.
  Thanks to all those who made it a point that It must be changed especially @Mike Burton for downvoting the question and to @jalf who seemed to jump to conclusions over my understanding of concepts!!</p>