title: What exactly is va_end for? Is it always necessary to call it?
body: <blockquote>
    <p><code>va_end</code> - Macro to reset <code>arg_ptr</code>.</p>
  </blockquote>
  
  <p>After accessing a variable argument list, the <code>arg_ptr</code> pointer is usually reset with <code>va_end()</code>. I understand that it is required if you want to re-iterate the list, but is it really needed if you aren't going to? Is it just good practice, like the rule "always have a <code>default:</code> in your <code>switch</code>"?</p>