title: What are the most useful new features in C99?
body: <p><a href="http://en.wikipedia.org/wiki/C99" rel="noreferrer">C99</a> has been around for over 10 years, but support for it has been slow coming, so most developers have stuck with C89. Even today, I'm sometimes mildly surprised when I come across C99 features in C code.</p>
  
  <p>Now that most major compilers support C99 (MSVC being a notable exception, and some embedded compilers also lagging behind), I feel that developers who work with C probably ought to know about what C99 features are available to them. Some of the features are just common features that were never standardized before (<code>snprintf</code>, for instance), or are familiar from C++ (flexible variable declaration placement, or single-line <code>//</code> comments), but some of the new features were first introduced in C99 and are unfamiliar to many programmers.</p>
  
  <p>What do you find the most useful new features in C99?</p>
  
  <p>For reference, <a href="http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf" rel="noreferrer">the C99 standard</a> (labelled as a draft, but identical to the updated standard, as far as I know), the <a href="http://www.open-std.org/jtc1/sc22/wg14/www/newinc9x.htm" rel="noreferrer">list of new features</a>, and the <a href="http://gcc.gnu.org/c99status.html" rel="noreferrer">GCC C99 implementation status</a>.</p>
  
  <p>One feature per answer, please; feel free to leave multiple answers. Short code examples demonstrating new features are encouraged.</p>