Chamadas com um número variável de argumentos
Uma lista de parâmetros parcial pode ser finalizada pela notação reticências, seguida por uma vírgula três pontos (, ...), para indicar que pode haver mais argumentos passados para a função, mas não é dada mais informações sobre eles.A verificação de tipo não é executada em esses argumentos.Por o menos um parâmetro deve preceder a notação reticências e a notação reticências deve ser o símbolo o último na lista de parâmetros.Sem a notação reticências, o comportamento de uma função é indefinido se recebe parâmetros além de aqueles declaradas na lista de parâmetros.
Para chamar uma função com um número variável de argumentos, simplesmente especificar qualquer número de argumentos para a chamada de função.Um exemplo é a função de printf da biblioteca em tempo de execução de C.A chamada de função deve incluir um argumento para cada nome de tipo declarado na lista de parâmetros ou na lista de tipos de argumento.
Todos os argumentos especificados na chamada de função são colocados na pilha a menos que __fastcall que chama a convenção é especificado.O número de parâmetros declarados para a função determina quanto dos argumentos são executadas de pilha e atribuídas aos parâmetros.Você é responsável por recuperar todos os argumentos adicionais de pilha e para determinar quanto os argumentos estão presentes.O arquivo de STDARG.H contém macros de ANSI- estilo para acessar argumentos das funções que recebem um número variável de argumentos.Além de isso, macros de XENIX- estilo em VARARGS.H ainda há suporte.
Essa declaração de exemplo é para uma função que chama um número variável de argumentos:
int average( int first, ...);