title: set most significant bit in C
body: <p>I am trying to set the most significant bit in a long long unsigned, x. 
  To do that I am using this line of code:</p>
  
  <pre><code>x |= 1&lt;&lt;((sizeof(x)*8)-1);
  </code></pre>
  
  <p>I thought this should work, because sizeof gives size in bytes, so I multiplied by 8 and subtract one to set the final bit. Whenever I do that, the compiler has this warning:  "warning: left shift count >= width of type"</p>
  
  <p>I don't understand why this error is occurring.</p>