Sin duda, todos los demás estudiantes de C lo han notado; es nuevo para mí¿Las varargs ofrecen un tipo de polimorfismo de pobre?
Si yo anuncio
int xlate(void *, ...);
y luego definir xlate()
de varias maneras diferentes (tal vez todas las definiciones menos uno son #ifdef
-ed a cabo):
int xlate (char *arg1) { ... }
int xlate (int arg1, char *arg2, int arg3) { ... }
int xlate (char arg1, int *arg2) { ... }
y omitir cualquier mención de va_list - - nunca mencionarlo - en cada definición de de xlate(); y luego llame a xlate() respetando varias de sus varias definiciones, parece que cada versión compilada de xlate() funciona exactamente como yo quiero, al menos bajo gcc y msvc.
¿Este comportamiento de compilador relajado, poco exigente y generoso está garantizado por C99?
Gracias!
- Pete
Formatee su código la próxima vez. –