va_start
De cppreference.com
Definido en el archivo de encabezado <stdarg.h>
|
||
void va_start( va_list ap, parmN ); |
||
La macro va_start
permite el acceso a los argumentos de la variable que siguen al argumento llamado parmN
.
va_start
debe ser invocado con una instancia a un objeto va_list válido ap
antes de cualquier llamada a va_arg.
Si parmN
se declara con el especificador de clase de almacenamiento de registro
, con un tipo de array, con un tipo de función, o con un tipo no compatible con el tipo que resulta de las promociones de argumentos por defecto, el comportamiento sera indefinido.
Contenido |
[editar] Parametros
ap | - | una instancia del tipo va_list |
parmN | - | el parámetro denominado que precede al primer parámetro de la variable |
[editar] Valor expandido
(ninguno)
[editar] Ejemplo
Ejecuta este código
#include <stdio.h> #include <stdarg.h> int add_nums(int count, ...) { int result = 0; va_list args; va_start(args, count); for (int i = 0; i < count; ++i) { result += va_arg(args, int); } va_end(args); return result; } int main(void) { printf("%d\n", add_nums(4, 25, 25, 50, 50)); }
Posible salida:
150
[editar] Referencias
- Standard C11 (ISO/IEC 9899:2011):
- 7.16.1.4 The va_start macro (p: 271-272)
- Standard C99 (ISO/IEC 9899:1999):
- 7.15.1.4 The va_start macro (p: 251-252)
- Standard C89/C90 (ISO/IEC 9899:1990):
- 4.8.1.1 The va_start macro
[editar] Véase también
accede al siguiente argumento de función variádica (macro de función) | |
(C99) |
hace una copia de los argumentos de las funciones variádicas (macro de función) |
finaliza la transferencia de los argumentos de la función variádica (macro de función) | |
contiene la información necesaria para va_start, va_arg, va_end y va_copy (typedef) | |
Documentación de C++ para va_start
|