Partilhar via


Parâmetros

Os argumentos são os nomes dos valores passados para uma função por uma chamada de função.Parâmetros são os valores que a função espera receber.Em um protótipo de função, os parênteses após o nome da função contêm uma lista completa dos parâmetros da função e seus tipos.As declarações de parâmetro especificam os tipos, tamanhos e identificadores de valores armazenados nos parâmetros.

Sintaxe

  • definição de função:
    especificadores de declaração optseq do atributo optDeclarador declaração-list optdeclaração de compostos

    / * atributo-seq é específico do Microsoft * /

  • Declarador :
    ponteiro optDeclarador de direct

  • Declarador de Direct: / * Declarador uma função * /
    Declarador de Direct ( lista de tipo de parâmetro ) / * Declarador de novo estilo * /

  • lista de tipo de parâmetro: / * uma lista de parâmetros * /
    lista de parâmetros

    lista de parâmetros ,...

  • lista de parâmetros:
    declaração de parâmetro

    lista de parâmetros , declaração de parâmetro

  • declaração de parâmetro:
    Declarador de especificadores de declaração

    Declarador de resumo de especificadores de declaração opt

O lista de tipo de parâmetro é uma seqüência de declarações de parâmetro, separados por vírgulas.O formulário de cada parâmetro em uma lista de parâmetros tem esta aparência:

[register]  type-specifier [declarator] 

Parâmetros da função declarada com o auto atributo gerar erros.Os identificadores dos parâmetros são usados no corpo da função para consultar os valores passados para a função.Você pode nomear os parâmetros em um protótipo, mas os nomes entre fora do escopo no final da declaração.Portanto os nomes de parâmetro podem ser atribuídos o mesmo propósito ou diferentes na definição de função.Esses identificadores não podem ser redefinidos no bloco mais externo do corpo da função, mas pode ser redefinidos em blocos aninhados internos como se a lista de parâmetros fosse um bloco delimitador.

Cada identificador em lista de tipo de parâmetro deve ser precedido por seu especificador de tipo apropriado, como mostrado neste exemplo:

void new( double x, double y, double z )
{
    /* Function body here */
}

Se ocorrer de pelo menos um parâmetro na lista de parâmetros, a lista pode terminar com uma vírgula seguida de três períodos (,...).Essa construção, chamada de "notação reticências", indica um número variável de argumentos para a função.(Consulte chamadas com um número variável de argumentos para obter mais informações.) No entanto, uma chamada para a função deve ter pelo menos o mesmo número de argumentos parâmetros antes da última vírgula.

Se nenhum argumento for a serem passados para a função, a lista de parâmetros é substituída pela palavra-chave void.Este uso de void é diferente de seu uso como um especificador de tipo.

A ordem e o tipo dos parâmetros, incluindo qualquer uso da notação reticências, devem ser o mesmo em todas as declarações de função (se houver) e na definição de função.Os tipos dos argumentos após conversões aritméticas usuais devem ser compatível com a atribuição com os tipos dos parâmetros correspondentes.(Consulte Conversões aritméticas usuais para obter informações sobre conversões aritméticas.) Seguindo as reticências de argumentos não são verificados.Um parâmetro pode ter qualquer fundamentais, o ponteiro de união, estrutura, ou tipo de matriz.

O compilador executa conversões aritméticas usuais independentemente em cada parâmetro e em cada argumento, se necessário.Após a conversão, nenhum parâmetro é menor que um int, e nenhum parâmetro tem float digite a menos que explicitamente, o tipo de parâmetro é especificado como float no protótipo.Isso significa, por exemplo, que, ao declarar um parâmetro como um char tem o mesmo efeito de declará-la como um int.

Consulte também

Referência

Definições de função c