描述
C 庫宏void va_start(va_list ap, last_arg)初始化ap與變量一起使用va_arg和va_end宏。這last_arg是傳遞給函數的最後一個已知固定參數,即省略號之前的參數。
這個宏必須在使用前調用va_arg和va_end。
聲明
以下是 va_start() 宏的聲明。
void va_start(va_list ap, last_arg);
參數
apâ�<這是的對象va_list它將保存檢索附加參數所需的信息va_arg。
last_arg- 這是傳遞給函數的最後一個已知的固定參數。
返回值
NA
示例
下麵的例子展示了 va_start() 宏的用法。
#include<stdarg.h>
#include<stdio.h>
int sum(int, ...);
int main(void) {
printf("Sum of 10, 20 and 30 = %d\n", sum(3, 10, 20, 30) );
printf("Sum of 4, 20, 25 and 30 = %d\n", sum(4, 4, 20, 25, 30) );
return 0;
}
int sum(int num_args, ...) {
int val = 0;
va_list ap;
int i;
va_start(ap, num_args);
for(i = 0; i < num_args; i++) {
val += va_arg(ap, int);
}
va_end(ap);
return val;
}
讓我們編譯並運行上麵的程序以產生以下結果——
Sum of 10, 20 and 30 = 60 Sum of 4, 20, 25 and 30 = 79
相關用法
- C語言 宏 va_arg()用法及代碼示例
- C語言 宏 va_end()用法及代碼示例
- C語言 vprintf()用法及代碼示例
- C語言 vfprintf()用法及代碼示例
- C語言 vsprintf()用法及代碼示例
- C語言 宏 assert()用法及代碼示例
- C語言 setlocale()用法及代碼示例
- C語言 fread()用法及代碼示例
- C語言 sinh()用法及代碼示例
- C語言 宏 offsetof()用法及代碼示例
- C語言 feof()用法及代碼示例
- C語言 scanf()用法及代碼示例
- C語言 imagesize()用法及代碼示例
- C語言 getarcoords()用法及代碼示例
- C語言 isdigit()用法及代碼示例
- C語言 clock()用法及代碼示例
- C語言 strcspn()用法及代碼示例
- C語言 setlinestyle()用法及代碼示例
- C語言 fmod()用法及代碼示例
- C語言 showbits()用法及代碼示例
注:本文由純淨天空篩選整理自 C library macro - va_start()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。