【问题标题】:Passing variable arguments to makecontext function [duplicate]将变量参数传递给makecontext函数[重复]
【发布时间】:2012-01-09 15:29:21
【问题描述】:

我想将变量参数传递给makecontext函数,如下所示。

void a(...)
{ 
 ....
 makecontext( &stack, &func, ?, ? );
 ....
}

在第三个参数(?)中,我应该有变量参数的数量,而在下一个?,我应该有所有的参数。如何做到这一点?

【问题讨论】:

  • 此问题已回答here

标签: c linux gcc x86


【解决方案1】:

可变参数函数无法知道它获得的参数数量。此信息不会以任何方式传递给它。
唯一的方法是按照约定,调用者需要尊重。
两种常见约定:
1. 第一个参数是参数的数量。
2.所有参数都是指针,最后一个必须为NULL。

请注意,printf 也不知道传递给它的内容。它只计算格式字符串中的百分号,并假设它得到了匹配数量的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 2015-01-05
    • 1970-01-01
    • 2019-10-18
    • 2022-01-26
    • 1970-01-01
    • 2017-09-22
    • 2012-08-20
    相关资源
    最近更新 更多