可变参数函数仿真方法的优缺点

问题描述

我正在开发一个平台,我们可以在该平台上编译 C 代码(和其他非 C 代码),但不能编译可变参数函数或 va_list 的。我想模拟这种机制 - 重点是实现的简单性/便利性而不是最佳性能。我还想避免依赖 ABI 功能、使用 asm() 等。

天真地,我正在考虑传递一些参数、一个参数大小数组和一个参数数据数组(后者要么是动态分配的上限大小)。当然,还有构建这些东西的函数

这种方法的优缺点是什么?说,相对于所有内容都在单个数组中的方法,也许带有某种空指针终止 a-la-argv?还是正确的节点列表?

另外,我是不是在重新发明轮子,甚至标准的 varags 实现已经满足我的要求?

注意事项:

  • C 变体或多或少是 C99。所以没有 K&R 漏洞,也没有来自 C11 的 _Generic。
  • 担心类型识别是“用户”的责任 - 使用格式字符串或其他一些参数。就像使用常规可变数量的参数一样。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)