![]() |
1
2
用标准C支持任意函数签名是不可能的(至少我不知道有什么方法可以做到这一点)。如果你需要这个,我会去的 libffi 作为 Tom suggested . 如果您希望支持的签名数量有限,那么可以检查类型字段并通过将无原型函数指针强制转换为正确的原型并自己提供正确的参数来适当地分派调用。强制转换函数指针是避免默认参数提升所必需的,但是即使没有强制转换,您仍然需要手动调度签名以访问正确的联合成员。这个过程可以通过使用您选择的脚本语言从签名列表中生成C代码来实现自动化。 |
![]() |
2
6
您可能需要使用 libffi . |
![]() |
3
0
将参数解包成变量,然后调用函数。
您还必须检查不要溢出
|
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 6 月前 |