小编Lau*_*ier的帖子

参数序列不完整时带$表示法的Printf行为

我正在开发自己的标准C库函数printf的实现。我目前正在尝试在符号指定参数数字($)时添加(非标准)行为。

在这种情况下,如果您提供5个参数,并且在格式字符串中仅引用了参数1、2 3和5,因为这些参数存储在使用va_start获取的列表中,那么我就有问题了。要进入参数5,我将不得不跳过参数4。这意味着我必须在参数4上调用va_arg。这意味着我必须为参数4指定类型,而我对此一无所知。

我的问题是:在这种情况下,printf使用哪种数据类型?或者,如果未知,您将使用哪种类型?我尝试了void,但是va_arg不接受它作为数据类型(这种方式有意义)。我知道所有这些都是未定义的行为,但是我正在尝试弄清楚printf如何处理它,因此欢迎任何想法!

c printf

3
推荐指数
1
解决办法
59
查看次数

标签 统计

c ×1

printf ×1