va_start as array
<p>According to what I read about the <code>va_arg</code> macro, it that retrieves the next argument pointed by the argument list. Is there any way to choose the index of the argument I want to get, like an array index?</p>

<p>For example I need to do an operation where I need to call at least 3 times the <code>va_arg</code> macro but I want those 3 times to retrieve the same argument and not the next one on the list. One solution could be using a function and passing the argument, but I don't want that.</p>

<p>Also if there is no other macros able to do this, how can I reference to the start of the array arguments by a pointer? I know its not portable and not type safe, etc, etc. Just for the sake of learning.</p>

<p>Here is an example code of how i want to implement it: </p>

<pre><code>bool SQLBase::BindQuery (char* query, int NumArgs, ...) 
{ 
    va_list argList; 
    va_start(argList, NumArgs); 
    SQLPrepare (hstmt, query, SQL_NTS); 
    for (int x = 0; x &lt; NumArgs; x++) 
    { 
        SQLBindParameter (hstmt, (x+1), GetTypeParameter (va_arg(argList, SQLPOINTER*), SQL_C_CHAR, SQL_CHAR, 10, 0, va_arg(argList, SQLPOINTER*), va_arg(argList, SQLLEN), &amp;recvsize[x]);
    } 
</code></pre>

<p>The va_arg is called 3 times for the SQLBindParameter function and i want the first 2 times to point to the same argument, not increasing the count member on the argument list. </p>
