No doubt every other student of C has noticed this; it's new to me.
If I declare:
int xlate( void *, ... );
and then define xlate( )
in several different ways (maybe all definitions but one are #ifdef
-ed out):
int xlate ( char *arg1 ) { ... }
int xlate ( int arg1, char *arg2, int arg3 ) { ... }
int xlate ( char arg1, int *arg2 ) { ... }
and omit any mention of va_list -- never mentioning it -- in every definition of xlate( ); and then call xlate( ) abiding by one of its several definitions, it seems that every compiled version of xlate( ) works just the way I want, at least under gcc and msvc.
Is this relaxed, undemanding, generous compiler behavior guaranteed under C99?
Thanks!
-- Pete