December 23rd, 2002, 01:04 AM
Variable Number of Arguments in C
I have a doubt regarding Variable number of arguments in C . va_end macro doesn't have any code to execute in stdarg.h. But in some of the books ( ex : C Complte Reference ) he is saying that if va_end is not called stack may not be restored properly . How it is possible . There is nothing to execute , but it does something . Please clarify me.
Last edited by bsuribabu; December 23rd, 2002 at 03:23 AM.
December 23rd, 2002, 02:10 AM
va_start(), va_list() and va_end() are part of the ANSI C standard specification. In gcc, these functions are implemented as macros. Just because there is no code for va_end() in your particular C compiler does NOT mean that there is no code generated for *ALL* compilers. So, if you omit the va_end(), it may work on your particular compiler, but is not guaranteed to work with other compilers.