?
Ce document utilise Manuel du site Web PHP chinois Libérer
在頭文件<stdarg.h>中定義 | ||
---|---|---|
void va_start(va_list ap,parmN); |
va_start宏允許訪問(wèn)命名參數(shù)parmN后面的變量參數(shù)。
在調(diào)用va_arg之前,應(yīng)該使用實(shí)例將va_start調(diào)用到有效的va_list對(duì)象ap。
如果使用寄存器存儲(chǔ)類說(shuō)明符,數(shù)組類型,函數(shù)類型或與默認(rèn)參數(shù)促銷產(chǎn)生的類型不兼容的類型聲明parmN,則行為是未定義的。
ap | - | 一個(gè)va_list類型的實(shí)例 |
---|---|---|
Prmhn | - | 第一個(gè)變量參數(shù)前的命名參數(shù) |
(none).
#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));}
可能的輸出:
150
C11標(biāo)準(zhǔn)(ISO / IEC 9899:2011):
7.16.1.4 va_start宏(p:271-272)
C99標(biāo)準(zhǔn)(ISO / IEC 9899:1999):
7.15.1.4 va_start宏(p:251-252)
C89 / C90標(biāo)準(zhǔn)(ISO / IEC 9899:1990):
4.8.1.1 va_start宏
va_arg | 訪問(wèn)下一個(gè)可變參數(shù)函數(shù)參數(shù)(函數(shù)宏) |
---|---|
va_copy(C99) | 制作可變參數(shù)函數(shù)參數(shù)(函數(shù)宏)的副本 |
va_end | 結(jié)束可變參數(shù)函數(shù)參數(shù)的遍歷(函數(shù)宏) |
va_list | 保存va_start,va_arg,va_end和va_copy(typedef)所需的信息 |
| 用于va_start的C ++文檔 |