6.13.3 Аргументы-указатели в функциях с переменным числом аргументов
Стандарт 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-15.3.0/gcc/Variadic-Pointer-Args.html