title: Cant i store 4294967295 in unsigned int ? Int is 4 bytes on my machine
body: <p>Why am i getting 0 ?? And compiler warning:</p>
  
  <blockquote>
    <p>format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long unsigned int’</p>
  </blockquote>
  
  <p>Here is the code :</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  //function declerations...
  int power(int base, int on);
  
  int main(void) {
      printf("%d",power(2, sizeof(int)*8)-1);
      return 0;
  }
  
  int power(int base, int on) {
      int pf = 1;
      for (int i = 0; i &lt; on; i++) {
          pf *= base;
      }
      return pf;
  }
  </code></pre>
  
  <p>If int is 4 bytes on my system,i <strong>guess</strong> i should be able to store 4294967295 in <strong>unsigned</strong> int.</p>