I want to know how the va_start(ap, parmN) macro works? I've read that parmN is number of optional arguments that is being passed, but at some places I noticed that const char *pointer is passed as parmN. I want to know how va_start() work and why it work in above both cases?
I've read this How to use va_start()? but I'm unable to understand as it has no good explanation and people are referring to same sentence quoted from the standard which say very little about va_start() working.
I'll be glad if someone explain this.