<分区>
我想按如下方式将变量参数传递给 makecontext
函数。
void a(...)
{
....
makecontext( &stack, &func, ?, ? );
....
}
在第三个参数 (?
) 中,我应该有变量参数的数量,而在下一个 ?
中,我应该有所有参数。如何做到这一点?
<分区>
我想按如下方式将变量参数传递给 makecontext
函数。
void a(...)
{
....
makecontext( &stack, &func, ?, ? );
....
}
在第三个参数 (?
) 中,我应该有变量参数的数量,而在下一个 ?
中,我应该有所有参数。如何做到这一点?
最佳答案
可变参数函数无法知道它获得的参数数量。此信息不会以任何方式传递给它。
唯一的方法是约定俗成,调用者需要遵守约定。
两个常见约定:
1. 第一个参数是参数的数量。
2. 所有参数都是指针,最后一个必须为NULL。
请注意 printf
也不知道传递给它的是什么。它只计算格式字符串中的百分号,并假定它得到了匹配数量的参数。
关于c - 将变量参数传递给 makecontext 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790788/