这是什么意思?
void message(int x, int y, ...)
我无法理解......是什么。 有人可以解释一下吗?
答案 0 :(得分:8)
...
表示可以通过va_arg, va_end and va_start访问的变量参数列表。
答案 1 :(得分:5)
未指定/可变数量的参数。要处理此类函数,您必须使用va_list类型和va_start,va_arg和va_end函数:
取自here的例子:
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
int maxof(int, ...) ;
void f(void);
main(){
f();
exit(EXIT SUCCESS);
}
int maxof(int n args, ...){
register int i;
int max, a;
va_list ap;
va_start(ap, n args);
max = va_arg(ap, int);
for(i = 2; i <= n_args; i++) {
if((a = va_arg(ap, int)) > max)
max = a;
}
va_end(ap);
return max;
}
void f(void) {
int i = 5;
int j[256];
j[42] = 24;
printf("%d\n",maxof(3, i, j[42], 0));
}
您可以找到更多详情here
答案 2 :(得分:3)
答案 3 :(得分:2)
...表示作为数组或参数序列传递的最终参数。
答案 4 :(得分:0)
这是变量参数形式参数。从语法学角度来看,它允许你传递可变数量的参数(至少两个,即x和y,但更多)。