c - 将变量参数传递给 makecontext 函数

标签 c linux gcc x86

<分区>

我想按如下方式将变量参数传递给 makecontext 函数。

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

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

最佳答案

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

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

关于c - 将变量参数传递给 makecontext 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790788/

相关文章:

c - MySQL Connector for C- 连接到远程数据库

c - 如何使用 minilibx 进行编译?

c - valgrind 报告错误并且在使用 realloc() 时肯定会丢失

c++ - Linux 操作系统上的 Qt Access Webcam 无需下载任何包

C 扩展 : <? 和 >?运营商

c++ - gcc 和 libstdc++ 向前兼容

c - C中的逻辑运算符和位分离计算(PIC编程)

c - 返回值,带有很多小数位

linux - 为任意应用程序编写 I/O 包装器 (linux)

gcc - 如何设置 CLion 来编译和运行?