count 参数是否应该直接在可变参数函数中的省略号 (...) 之前声明?
Should the count parameter be declared directly before the ellipsis (...) in a variadic function?
这是 va_start
宏的实现:
#define va_start(list, param) (list = (((va_list)¶m) + sizeof(param)))
如您所见,va_start
宏返回可变参数列表中第一个字节的地址,假设它直接存在于 count
参数之后(我的意思是count
parameter 我声明的参数的名称,我将传递给参数的数量)。
所以如果我使用除了 count
参数之外的其他参数,count
参数是否应该直接在省略号 (...) 之前声明?
va_start()
应始终使用 最后命名参数 调用,例如
void function(int x, int y, int z, ...)
{
va_list ap;
va_start(ap, z);
.
.
.
va_end(ap);
}
So if I am using in addition to the count parameter other parameters, Should the count parameter be declared directly before the ellipsis (...)?
是的,如果你想这样使用va_start()
va_list ap;
va_start(ap, count);
这是 va_start
宏的实现:
#define va_start(list, param) (list = (((va_list)¶m) + sizeof(param)))
如您所见,va_start
宏返回可变参数列表中第一个字节的地址,假设它直接存在于 count
参数之后(我的意思是count
parameter 我声明的参数的名称,我将传递给参数的数量)。
所以如果我使用除了 count
参数之外的其他参数,count
参数是否应该直接在省略号 (...) 之前声明?
va_start()
应始终使用 最后命名参数 调用,例如
void function(int x, int y, int z, ...)
{
va_list ap;
va_start(ap, z);
.
.
.
va_end(ap);
}
So if I am using in addition to the count parameter other parameters, Should the count parameter be declared directly before the ellipsis (...)?
是的,如果你想这样使用va_start()
va_list ap;
va_start(ap, count);