Variable arguments

Using an explicit count argument to determine the length of the va list

Using terminator values to determine the end of va list

Implementing functions with a printf-like interface

Using a format string