---
name: "va_list"
section: "3type"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/va_list/3type"
---

# va\_list(3type)

variable argument list

## NAME

va\_list - variable argument list

## LIBRARY

Standard C library (*libc*)

## SYNOPSIS

```
#include <stdarg.h>
```

**typedef** /\* ... \*/  **va\_list;**

## DESCRIPTION

Used by functions with a varying number of arguments of varying types. The function must declare an object of type *va\_list* which is used by the macros [**va\_start**(3)](/va_start/3.md), [**va\_arg**(3)](/va_arg/3.md), [**va\_copy**(3)](/va_copy/3.md), and [**va\_end**(3)](/va_end/3.md) to traverse the list of arguments.

## STANDARDS

C11, POSIX.1-2024.

## HISTORY

C89, SUSv1, POSIX.1-2001.

## NOTES

The following headers also provide *va\_list*: *\<stdio.h\>* and *\<wchar.h\>*.

## SEE ALSO

[**va\_start**(3)](/va_start/3.md), [**va\_arg**(3)](/va_arg/3.md), [**va\_copy**(3)](/va_copy/3.md), [**va\_end**(3)](/va_end/3.md)
