I've always wondered where a single function such as printf(); can take in variable parameters and provide the right results. For example,

printf("Number is %d",a);

which has two parameters, and

printf("Numbers are %d and %d",a,b);

which has three variables. So, is there any possibilities for creating a user-defined function like these functions in C? If so, how can i do it? Thanks in advance.


Interestingly, the C standard defines what variadic function declarations should look like, but no guidance in how to implement them.

The mechanics for accessing arguments to variadic functions are therefore implementation-dependent. GNU C provides this via stdarg.h.

  • There is a small example on the va_start man page. – ott-- Mar 9 '15 at 15:44
  • 5
    Actually, the macros in stdarg.h are the standard way for accessing arguments in variadic functions. The thing left open by the standard is how those macros should be implemented. – Bart van Ingen Schenau Mar 9 '15 at 16:57
  • (and the macros are guaranteed to be provided by a compliant compiler, so you don't need to worry about it - writing and using variadic functions is perfectly well-defined) – Thomas Mar 10 '15 at 0:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.