Keil Logo


#include <stdio.h>

void vprintf (
  const char *fmtstr,   /* pointer to format string */
  char *argptr);        /* pointer to argument list */

The vprintf function formats a series of strings and numeric values and builds a string to write to the output stream using the putchar function. This function is similar to the printf routine, but it accepts a pointer to a list of arguments instead of an argument list.

The fmtstr argument is a pointer to a format string which has the same form and function as the printf function's format string. The argptr argument points to a list of arguments that are converted and output according to the corresponding format specifications in fmtstr.


  • This function is implementation-specific and is based on the operation of the putchar function. This function, as provided in the standard library, writes characters using the microcontroller's serial port. Custom functions may use other I/O devices.
Return Value

The vprintf function returns the number of characters actually written to the output stream.

See Also

gets, puts, sprintf, sscanf, vsprintf

#include <stdio.h>
#include <stdarg.h>

void error (char *fmt, ...) {
  va_list arg_ptr;
  va_start (arg_ptr, fmt); /* format string */
  vprintf (fmt, arg_ptr);
  va_end (arg_ptr);

void tst_vprintf (void) {
  int i;

  i = 1000;

  /* call error with one parameter */
  error ("Error: '%d' number too large\n", i);

  /* call error with just a format string */
  error ("Syntax Error\n");
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.