Again, the definition of va_arg
is implementation dependent, but the
effect is as though the following were written in the definition of
construct_trade
:
Cast argument_pointer to appropriate data type | *-- Increment pointer after the value is v | returned; because pointer is cast -------- v to argument type, incrementing moves (*((type *) argument_pointer)++) the argument pointer properly ^ | *-- Dereference argument_pointer to get argument value