# **[](https://en.cppreference.com/w/c/header/stdarg)** provides `va_list`, `va_start()`, `va_arg()`, and `va_end()` for implementing variadic functions accepting a variable number of arguments. The caller must ensure type safety—there's no runtime checking that passed arguments match what the function expects. Use an explicit count or sentinel value to bound the argument list. ## Example This example implements a variadic function that finds the minimum of integers. ```c // compile: gcc -o stdargexample stdargexample.c // run: ./stdargexample // description: variadic minimum function #include #include #include int vmin(int count, ...) { va_list args; va_start(args, count); int result = INT_MAX; for (int i = 0; i < count; i++) { int v = va_arg(args, int); if (v < result) result = v; } va_end(args); return result; } int main() { printf("min(3, 7, 1, 9) = %d\n", vmin(4, 3, 7, 1, 9)); printf("min(42) = %d\n", vmin(1, 42)); return 0; } ```