title: printf and %llx in GCC under Windows 64x
body: <p>I am trying to get rid of a bogus warning in my program. Under windows 64 (under linux there is no such warning) this statement:</p>
  
  <pre><code>printf("%llu",UINT64_MAX);
  </code></pre>
  
  <p>generates the following warning:</p>
  
  <pre><code>warning: unknown conversion type character 'l' in format [-Wformat]|
  </code></pre>
  
  <p>The output appears to be correct and the warning should not be there. The most relevant gcc related post I can find is this bug report back from 2008 <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37768" rel="nofollow noreferrer">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37768</a></p>
  
  <p>If I understand correctly according to that, this warning stems from the fact that under the hood gcc calls MSVC printf which is not C99 compliant and can't understand the unsigned  long long format in printf. From the same page the suggested solution is to use something called gnu_printf. I tried to google that but I did not find a header to include.</p>
  
  <p>So the question is how should this be handled in order to be portable? I just want to get rid of the warning in a correct and non-sloppy way.</p>