![]() |
![]() |
![]() |
![]() |
![]() |
|
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.