Я работаю над собственной реализацией стандартной функции библиотеки языка C printf.В настоящее время я пытаюсь добавить (нестандартное) поведение, когда в нотации указывается номер аргумента ($).
В этом случае, если вы укажете 5 аргументов и только аргумент 1, 2 3 и 5 будутссылка в строке формата, так как аргументы хранятся в списке, полученном с помощью va_start, у меня есть проблема.Чтобы перейти к аргументу 5, мне нужно пропустить аргумент 4. Это означает, что мне придется вызывать va_arg для аргумента 4. Это означает, что мне нужно указать тип для аргумента 4, о котором у меня нет никакой информации.
Мой вопрос: какой тип данных использует printf в этой ситуации?Или, если это неизвестно, какой тип вы бы использовали?Я пробовал void, но va_arg не принимает его как тип данных (что имеет смысл).Я знаю, что все это неопределенное поведение, но я пытаюсь понять, как printf справляется с этим, поэтому любые идеи приветствуются!