Partilhar via


Tipo de retorno

O tipo de retorno de uma função estabelece o tamanho e tipo do valor retornado pela função e corresponde ao especificador de tipo na sintaxe abaixo:

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 * /

  • especificadores de declaração:
    especificadores de declaração de especificador de classe de armazenamento opt

    especificadores de declaração de especificador de tipo opt

    especificadores de declaração de qualificador de tipo opt

  • especificador de tipo:
    Void

    char

    short

    int

    long

    float

    double

    assinado

    não assinado

    especificador de struct ou união

    especificador de enum

    nome de TypeDef

O especificador de tipo pode especificar qualquer fundamentais, estrutura ou tipo de união.Se você não incluir especificador de tipo, o tipo de retorno int será adotada.

O tipo de retorno fornecido na definição de função deve corresponder ao tipo de retorno em declarações da função em outro lugar no programa.Uma função retorna um valor quando um return contendo uma expressão de instrução é executada.A expressão é avaliada, convertido para o tipo de valor de retorno, se necessário e retornado para o ponto em que a função foi chamada.Se uma função for declarada com tipo de retorno void, uma instrução return contendo uma expressão gera um aviso e a expressão não é avaliada.

Os exemplos a seguir ilustram os valores de retorno da função.

typedef struct  
{
    char name[20];
    int id;
    long class;
} STUDENT;

/* Return type is STUDENT: */

STUDENT sortstu( STUDENT a, STUDENT b )
{
    return ( (a.id < b.id) ? a : b );
}

Este exemplo define o STUDENT digite com um typedef declaração e define a função sortstu ter STUDENT tipo de retorno.A função seleciona e retorna um dos seus argumentos de estrutura de dois.Em chamadas subseqüentes para a função, o compilador verifica para certificar-se de que os tipos de argumento são STUDENT.

ObservaçãoObservação

Seria melhor eficiência, passando de ponteiros para a estrutura, em vez de toda a estrutura.

char *smallstr( char s1[], char s2[] )
{
    int i;

    i = 0;
    while ( s1[i] != '\0' && s2[i] != '\0' )
        i++;
    if ( s1[i] == '\0' )
        return ( s1 );
    else
        return ( s2 );
}

Este exemplo define uma função retornar um ponteiro para uma matriz de caracteres.A função leva dois conjuntos de caracteres (seqüências) como argumentos e retorna um ponteiro para a menor das duas seqüências de caracteres.Um ponteiro para uma matriz aponta para o primeiro os elementos da matriz e tem seu tipo; Assim, o tipo de retorno da função é um ponteiro para digitar char.

Você não precisa declarar funções com int tipo de retorno antes de chamá-los, embora protótipos são recomendados para que o tipo correto de verificação de argumentos e valores de retorno está habilitado.

Consulte também

Referência

Definições de função c