6.25 Указатели в функциях с переменным числом аргументов ¶
Стандартный C требует, чтобы типы указателей, используемые с va_arg в функциях с переменным числом аргументов, либо были совместимы с типом фактического аргумента, либо один тип был указателем на void, а другой — указателем на тип символа. GNU C реализует расширение POSIX XSI, которое дополнительно разрешает использование va_arg с типом указателя для приема аргументов любого другого типа указателя.
В частности, в GNU C «va_arg (ap, void *)» можно безопасно использовать для обработки аргумента любого типа указателя.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Variadic-Pointer-Args.html