Home Segments Index Top Previous Next

629: Sidetrip

The definition of va_start is also implementation dependent, but the effect is as though the following were written in the definition of construct_trade:

 Cast to neutral                Increment needed to 
 pointer type                   move pointer to first 
   |                            optional argument 
   v                                     | 
 ------                                  v 
((void) argument_pointer       ----------------------             
   = (char*) &argument_count + sizeof(argument_count)) 
     ------- --------------- 
        ^          ^            
        |          | 
        |          *-- Address of final ordinary argument 
        | 
        *-- Cast to argument_pointer type, char, to which 
            a byte count can be added meaningfully 

The final cast to void is useful only if the va_start expression is embedded in a larger expression.